Beiträge von linux_

    Bei Ruby on Rails hast Du halt viele Conventions. Deswegen findet man sich in anderen Ruby on Rails Apps schnell ein. Wenn Du diese brichst, wird es unflexibel ;)

    In welchen Punkten kann PHP nicht mehr mithalten?

    Du schreibst viel weniger Code in Ruby. Unter Ruby gibt es nur ein grosses Webframework und das ist "Ruby on Rails" bei PHP hast Du tausende. Dadurch, dass es nur eines gibt, gibt es so viele Extensions und eine verdammt grosse Community. Das Rails Framework ist einfach mega geil und vereinfacht Dir so ziemlich alles. Fuer das, dass ich seit 9-10 Jahren PHP mache, muss ich ehrlich sein, ich bin im schreiben von Web Apps (sei es jetzt ein CP fuer meinen Server) viel schneller. Alleine so Sachen wie "ActiveRecord" oder Datenbank Migrationen sind geil. Klar, gibt es auch in manchen PHP Frameworks, allerdings habe ich noch nie eine vergleichbar gute Umsetzung gesehen. Rails achtet von selbst schon auf Sicherheit wie z.B. Cross-Site-Scripting Protection oder automatisches Escapen von Eingaben in einem Query. Ebenfalls kannst Du ohne Probleme in Deiner WebApp parallele Prozesse schreiben, wo Du in PHP bereits ein Backend brauchst oder eine Extension (wenn es sowas ueberhaupt gibt). SQL schreibst Du eigentlich garnicht. Du arbeitest nur auf Basis von Objekten. Das gibt es wie gesagt auch in PHP Frameworks, nur habe ich bisher noch keine vergleichbar gute Umsetzung gefunden.


    Hier mal zum Nachlesen: http://www.leonardteo.com/2012…-vs-php-the-good-the-bad/


    Hier mal eine Beispiel Ruby on Rails App: https://build.city-of-sa.de/projects/city-of-sa (noch in Entwicklung)
    Kurze Erklaerung: Das ist eine App, die dafuer da ist um neue Aenderungen (neue Git Commits) in meinem Server Script zu compilen und auf einem Testserver meines Linux Servers zu installieren. Das Compilen und das aufsetzen des sicheren Docker Environments ist alles in der App (parallele Jobs). Ich habe kein Backend oder sonstiges geschrieben. In PHP brauchst Du schon ein Backend fuer sowas. Lasse mich z.B. ueber das Ergebnis des Compilers per Push Benachrichtigung aufm Handy informieren (erfolgreich oder fehlgeschlagen). Dafuer habe ich die Extension 'pushover' genutzt. Einmal 'gem install pushover' eingegeben und ich habe in meiner App Zugriff auf die Klasse 'Pushover' und kann Nachrichten an mein Handy senden.


    Fuer Ruby on Rails gibt es so viele Extensions, die Du teilweise noch nichtmal wirklich konfigurieren musst. Wenn Du z.B. eine Login, Registrier und Account Management Seite brauchst, kein Problem... Gibst auf der Command Line 'gem install devise' ein und mit einer kleinen Konfiguration ist alles da was Du brauchst. Bin zwar kein Fan von solchen Sachen, viele nutzen es aber.


    Ausserdem denkt Rails ziemlich weit mit. Brauche ich alle User in einem Array:

    Code
    users = User.all

    Rails weiss, dass der Tabellennamen 'users' heisst und baut darauf die SQL Abfrage auf.


    Moechte ich einen User erstellen (automatisches Escapen der Eingaben):

    Code
    user = User.create(username: 'Slider')

    Was mir ebenfalls gut gefaellt sind Validierungen von Datenbankeintraegen die modifiziert, erstellt oder geloescht werden.


    Hier mal ein Modell (eine Repraesentation eines Users)


    Code
    class User < ApplicationRecord
      validates :username, presence: true, uniqueness: true
    
    
      has_many :warns
    end


    Wuerde ich jetzt einen User anlegen oder modifizieren wollen, wuerde ueberprueft werden, ob ich einen usernamen eingegeben habe und ob der unique ist (nur einmal vorkommt).


    Das has_many sagt, dass es eine Tabelle Namens "warns" gibt, die einen Foreign Key "user_id" hat und der User mehrere Verwarnungen haben kann. Wie war noch gleich der Query? Ach scheiss drauf... Rails macht das ;)


    Code
    warns = User.find_by(username: 'Slider').warns


    Auf der Console wuerde er Dir dann zeigen, welchen Query er gerade ausfuehrt.


    Moechte ich die User zaehlen:


    Code
    users_count = User.count
    users_count_with_condition = User.where(admin_rank: 5).count

    Zurueck zu PHP werde ich auf keinen Fall gehen. Alleine schon aus beruflichen Gruenden. PHP Developer gibt es wie Sand am Meer, Rails Developer werden immer mehr gefragt und meiner Erfahrung nach viel besser bezahlt.

    PHP musst du dafür auf jeden fall können und bedenke bitte, dass solch ein UCP sich nicht in wenigen Tagen programmieren kannst.

    Ich schreibe meine CP's nur noch in Ruby on Rails weil PHP in meinen Augen da nicht mehr mithalten kann.

    Hast Du nie gelernt wie man fragen stellt? Du schmeißt nen Code hin, sagst dann was Du machen willst und jetzt? Das bisher war nur eine Aussage. Eine Frage ergibt sich mir nicht.

    Die Backticks sind in SQL kein Fehler. Die sagen nur aus, dass was da drinnen steht, nicht als SQL Keyword verstanden wird. Somit war das einfach korrekt. Die Variable `string` die er hat ist einfach leer wie man auch im Error sieht. Und das ' kannst Du Dir sparen bei `id` = weil Integer keine Anfuehrungszeichen benoetigen.

    Jetzt widersprichst du dir aber.
    Sozusagen hättet ihr H1Z1 genommen, aber weil dieser geschützt ist habt ihr S1A1 genommen?
    Da die 1 anscheinend gar keinen Sinn macht wieso überlegt ihr euch nichts eigenes ?
    Soll kein Hate sein..


    Mein Gott... Manchmal hab ich das Gefuehl das is in jedem Serverthread einen GUCCI gibt. WHO THE FUCK CARES?! :pinch:


    Ich finde die Idee toll und bin froh, dass sich Leute noch ermutigen Projekte zu starten nachdem es jede Wochen ein neues "LEBT SA:MP NOCH?!?!??!?!?!?!?!" Thread gibt. Hoffe, dass aus diesem Projekt noch was wird.

    Hä? Schreib doch einfach Fragen im Forum. Alleine schon das Du in einem Forum, wo PAWN Fragen tag täglich beantwortet werden, fragst ob es hier einen gibt, der Dir Fragen beantwortet, lässt mich nachdenken...


    Wozu brauchst Du da eine bestimmte Person? Vorallem hat die eine Person auch nicht immer Zeit. Erstell doch einfach ein Thread mit der Frage, macht es euch doch net immer so kompliziert...


    //Edit: Vorallem bist Du bereits 23... So schwer ist PAWN nun auch wieder nicht, so dass Du eine fuer Dich ausgewaehlte Person brauchst, die Dir alles beantwortet. Selbst informieren und Sachen ausprobieren und im Worst-Case nachfragen hier im Forum. Alles andere ist meiner Meinung nach einfach sinnlos.

    Code
    stock AreAllVehicleSlotsUsed(playerid)
    {
        return if(PlayerInfo[giveplayerid][fahrzeugslot1] == 1 && PlayerInfo[giveplayerid][fahrzeugslot2] == 1 && PlayerInfo[giveplayerid][fahrzeugslot3] == 1 && PlayerInfo[giveplayerid][fahrzeugslot4] == 1 && PlayerInfo[giveplayerid][fahrzeugslot5] == 1 && PlayerInfo[giveplayerid][fahrzeugslot6] == 1 && PlayerInfo[giveplayerid][fahrzeugslot7] == 1 && PlayerInfo[giveplayerid][fahrzeugslot8] == 1 && PlayerInfo[giveplayerid][fahrzeugslot9] == 1 && PlayerInfo[giveplayerid][fahrzeugslot10] == 1);
    }

    Aber ich wuerd es garnicht mal soweit kommen lassen, dass Du jedesmal ne neue Variable hast.


    Bei mir wuerds dann halt so aussehen, dass es einen Eintrag im Enum Namens "VehicleSlots" gibt und das ist einfach wieder einArray mit 10 Eintraegen.

    @reaL. sag ich ja, MySQL Tutorial Wissen...


    Gehen wir von folgenden Tabellen aus:


    Tabelle: users
    Felder: user_id (int), username (varchar)


    Tabelle: houses
    Felder: house_id (int), owner_id (int)


    Query:

    SQL
    SELECT houses.*, users.username FROM houses
    LEFT JOIN users ON houses.owner_id = users.user_id;


    Und Du bekommst pro Row folgendes zurueck:


    house_id | owner_id | username


    username kann NULL sein - das passiert dann, wenn in owner_id eine ID drinen steht, die in der users Tabelle nicht vorhanden ist. (sprich: Haus hat keinen Besitzer oder User wurde geloescht)


    ____



    Was Du machst ist einfach nur redundant und so baut man keine Datenbank auf...