Beiträge von Padarom

    Wenn es um kleine Projekte ohne viel Konfiguration und Boilerplate geht, nutz ein Mini-Framework wie Slim oder Laravel Lumen. Mit Composer installieren und fertig. Mit Slim habe ich nicht all zu viel Erfahrung, aber mit Lumen brauchst du nichts konfigurieren für kleine Projekte, einfach anfangen zu coden reicht. Ich habe neulich die Webseite eines Kunden für leichtere Erweiterbarkeit in der Zukunft auf Lumen umgehoben, was mich insgesamt etwa 1-2 Stunden Arbeit gekostet hat. Genau für kleine Projekte sind solche Mini-Frameworks ja da. Und wenn du soweit bist, dass du in deinem Template mit echo USERS::getAllCustomers() rumhantieren musst, dann ist es wohl kein so kleines Projekt, dass nicht zumindest ein Mini-Framework gerechtfertigt wäre.


    Der Hintergrund eines Frameworks ist so ziemlich immer Arbeitsaufwand zu sparen, weil das Rad nicht immer wieder neu erfunden werden muss. Häufig verwendete Komponenten anderer Entwickler werden dort verwendet wo man sie benötigt. Wenn ein Framework dabei zu viel ist, binde nur die Komponenten ein die du brauchst, gerade die Symfony Components sind alle sehr gut als einfache Drop-In-Lösungen konzipiert und machen einiges an Entwicklung einfacher. Template und Code zu trennen verringert den Arbeitsaufwand zwar nicht großartig, dafür aber die Sauberkeit des Codes- Und das ist hier gewünscht. Ist ein komplettes Framework, selbst wenn dieses auch fast nur aus einer Ansammlung von kleineren Bibliotheken besteht, zu viel, sollte eine einfache Template-Engine wie Twig doch ausreichen.


    Zu der Diskussion im StackExchange: Gerade bei PHP machen die meisten der dort aufgeführten Punkte nicht viel Sinn. Frameworks werden als schlecht in manchen Fällen hingestellt, weil sie den Entwickler dazu bringen, nur noch im Framework zu denken und sich nicht mehr mit der darunterliegenden Materie beschäftigen. PHP bekommt seinen überwiegend negativen Ruf gerade davon, dass es so einfach ist darin einzusteigen und schnell verbuggte und sicherheitstechnisch kritische Seiten zu erstellen, weil man es machen kann wie man es möchte. Von meinen 10 Jahren PHP-Entwicklung waren die ersten ~5 Jahre genau das. Erst wenn man sich wirklich OOP-Konzepte einverleibt und sich anschaut, wie es von Open Source Projekten richtig gemacht wird (und einige Dinge quasi-standardisiert werden, siehe PHP-FIG), kommt man dazu wirklich skalier- und wartbare Webapplikationen zu schreiben. Gerade um da reinzukommen und den Sinn der ganzen abstrakt scheinenden Konzepten zu verstehen, eignen sich Frameworks. Und wer als Entwickler weiterkommen möchte, wird sich automatisch auch über die Zeit mit den darunterliegenden Strukturen beschäftigen, sodass er weiterhin die Arbeitserleichterung des Frameworks zu schätzen weiß, und gleichzeitig versteht, was unter der Haube überhaupt passiert.

    Weil das ein viel zu großer Overhead wäre. OctoberCMS ist ein komplettes CMS mit Online-Source Editor uvm, was im Forensystem nicht notwendig ist. Die Funktionalität könnte zwar genauso gut darin abgebildet werden, allerdings gibt es auch einige Dinge in October, die ich anders gemacht hätte/machen werde.

    Hallo zusammen,


    da ich die Plugin-Entwicklung in WBB schon seit einiger Zeit als komplizierter empfinde als sie sein müsste und die Entwickler-Community im Vergleich zu anderen Forensystemen (phpBB, vBulletin z.B.) relativ klein ist, habe ich mich vor einiger Zeit dafür entschieden ein eigenes Forensystem zu entwickeln. Es soll gerade im Bezug auf die schnelle Plugin-Entwicklung optimiert sein und moderne Technologien in einer schnellen Anwendung vereinen.


    Kurze Infos zu mir:
    Ich programmiere seit knapp 9 Jahren, vor etwa 7 Jahren fing ich mit der Entwicklung von dynamischen Webseiten in PHP an. In der Zwischenzeit bin ich noch einigen anderen Sprachen begegnet in denen ich jeweils mehr oder weniger Erfahrung sammeln konnte und teilweise immer noch zum Entwickeln benutze. Zu diesen Sprachen gehören etwa Java, Python, C# sowie C++. Der Hauptteil meiner Expertise liegt jedoch in der Webentwicklung, wobei ich mich eher als Backend-Entwickler, als Frontend-Entwickler, bezeichne. Durch die Arbeit kam ich zusätzlich zur iOS-Entwicklung und bin dort seit Oktober 2014 in der Swift-Programmierung zuhause.


    Das Projekt habe ich vor etwa 3 Monaten gestartet und entwickle es seit ca. einer Woche aktiv. Den derzeitigen Stand der Entwicklung könnt ihr gerne auf GitHub ansehen. Derzeitiger Stand der Entwicklung ist ein funktionsfähiger Kern für Backend und Frontend, die nächsten Schritte sind der weitere Ausbau des Plugin-Systems sowie des Backends.


    Den Kern des Forensystems stellt das bekannte PHP-Framework Laravel dar, in dem ich seit Ende 2014 entwickle und welches ich inzwischen für sämtliche meiner Web-Projekte nutze. Ähnlich wie bei OctoberCMS greift mein derzeit Exoplanet genanntes Forensystem auf die Illuminate-Klassen von Laravel zu, nutzt jedoch seinen eigenen Kernel und seinen eigenen Anwendungs-Aufbau. Das Rückgrat des Forums ist das Backend, welches allgemeine Möglichkeiten zur Verwaltung von Nutzern, der Seite sowie von Plugins bieten soll. Die Funktionalität des Forums wird durch ein Plugin eingebunden, sodass dieses bei Bedarf austauschbar und der Rest des Codes wiederverwendbar ist. Dies gleicht konzeptionell in etwa der Art, wie das WCF/WBB aufgebaut ist.


    Warum ich diesen Thread schreibe:
    Im Wesentlich würde ich gerne Ideen sammeln. Was ist Forennutzern wichtig, was ist Forenbetreibern wichtig, was ist Plugin-Entwicklern wichtig, ...? Ihr könnt euch gerne an der Entwicklung beteiligen, indem ihr mir Ideen oder Feedback gebt, oder auch indem ihr direkt mit-entwickelt.
    Wie gesagt ist meine Vorliebe die Backend-Entwicklung, daher würde ich mich über Frontend-Entwickler oder Webdesigner sehr freuen, die etwas mehr Zeit in das Design stecken können. Sollte euch das interessieren, könnt ihr mir gerne eine Nachricht schreiben und euch kurz mit eurem Kenntnisstand vorstellen.

    Mit dem Framework habe ich mich falsch ausgedrückt. Ich möchte die Anwendung entwickeln, die dann als solche dem Nutzer die Möglichkeit der freien Konfigurierbarkeit und Erweiterbarkeit liefert - So wie WBB und sein Framework.
    Die Technologien beschreiben hier in erster Linie das, was von den Entwicklern an Können und Verständnis mitgebracht werden sollte. Ich wollte noch mit keinen technischen Spezifikationen und Dokumentationen anfangen, sondern erstmal schauen, ob es Leute gibt, die sich dafür interessieren und dann ebendas mit ihnen besprechen und klarstellen. Daher habe ich hier und da noch ein bisschen schwammig formuliert.


    SQLite ist durchaus auch eine Möglichkeit, auch hier handelt es sich wieder um ein SQL-"Derivat", den ORM-Aspekt der Datenbank habe ich jedoch tatsächlich noch gar nicht in Betracht gezogen. MySQL ist gerade das System, das aus Gewohnheit in den meisten Fällen verwendet wird (womit folglich auch die meisten arbeiten) und eigentlich auch für die meisten Anwendungsfälle geeignet ist, weshalb ich das jetzt erstmal in die Liste aufgenommen habe. SQLite ist dabei allerdings tatsächlich eine gute Alternative, über die man nachdenken kann.


    edit: Bump.. Da sich bisher niemand wirklich gemeldet hat, habe ich das Thema etwas verwahrlosen lassen und die Idee noch nicht weiter verfolgt, aber trotzdem im Hinterkopf behalten. Ich suche immer noch Leute, die sich an der Entwicklung beteiligen wollen und ihre Erfahrung und Wünsche mit einbringen können.

    Chris. Ich habe schon des öfteren Benchmarks dazu gemacht und gesehen und tatsächlich sind Single Quotes bei häufiger Anwendung etwas schneller (allerdings nur 2-5 %). Doch diese Performance-Steigerung sollte kaum ins Gewicht fallen bei der heutigen Technik. Vor allem bei alltäglichen Anwendungen wirst du damit kaum einen Unterschied feststellen. In meiner Firma werden anstatt Verkettung immer Double Quotes genommen, wenn keine Variablen eingefügt werden sollen reichen dann Single Quotes. Für gewöhnlich hat man vor allem im professionellen Bereich aber sowieso firmenspezifische Guidelines an die sich gehalten werden muss, daher glaube ich nicht, dass man eine Aussage treffen kann welche mehr oder welche weniger verbreitet sind.

    Ich habe es eigentlich auch anders gelernt, bis vor etwa einem Jahr wusste ich ehrlich gesagt noch nichtmal wirklich, dass das überhaupt funktioniert.
    Wenn ich allerdings Code wie diesen (oder noch mehr Verkettungen) habe

    PHP
    echo 'User ' . $user['name'] . ' (ID: ' . $user['id'] . ') ' . $user['action'];


    wird die Verkettung doch recht schnell unübersichtlich. Da nutze ich dann doch lieber

    PHP
    echo "User {$user['name']} (ID: {$user['id']}) {$user['action']}";


    Du hast aber Recht, ist auch Sache des Geschmacks.

    In doppelten Anführungszeichen brauchst du keine Stringverkettung. Funktioniert zwar genauso, ist aber unnötig.


    PHP
    echo '<div class="Überschrift">[' . $headline . ']</div>';
    echo "<div class='Überschrift'>[$headline]</div>";


    Das funktioniert beides genau gleich. Hier wird der Unterschied zwischen Single-Quotes und Double-Quotes erklärt.

    Zitat

    MySQL an sich ist nicht veraltet. Einzig und allein die mysql_* extension für php ist als verwaltet gekennzeichnet.

    @BirD: Genau das. Mit MySQL meine ich die Datenbank, nicht wie ich darauf per PHP zugreife. Theoretisch sollte aber jedes SQL-basierte Datenbanksystem funktionieren, also MariaDB (ist ja so ziemlich MySQL), Oracle, PostgreSQL um mal nur die bekanntesten zu nennen.


    $this->getuser(); Werde dich später in Skype annehmen, muss nur gucken ob ich heute überhaupt noch großartig Zeit finde

    Solch ein Framework ist letztendlich genau das, worauf ich aus bin. Selbstverständlich nicht so umfangreich, aber im Kern sollte es genau so etwas sein. Dabei geht es allerdings um den Aufwand: Ist der Aufwand für ein so weit konfigurierbares und offen ausgelegtes System noch im Rahmen, oder würde sich das gar nicht lohnen? Aber solche Dinge könnte man sich denke ich auch noch in der Planung Gedanken machen- Dann opfert man wenigstens mal ein paar Stunden Gehirnschmalz um zu schauen, was benötigt wird und wie/ob das ohne fünf Quantillionen Zeilen Code umsetzbar ist. Und sollte es sich herausstellen, dass es das nicht ist, kann man ja vor der eigentlichen Arbeit noch abbrechen. Ist zwar doof sich schon Gedanken drüber gemacht zu haben, aber ich denke dass sich diese Frage nicht so einfach in ein paar Minuten beantworten lässt, zumal es auch auf die Erfahrung der Entwickler ankommt.


    Code Conventions habe ich mir schon überlegt und werde ich auch definitiv (in Absprache mit den Leuten, die sich melden - Falls es überhaupt welche gibt, um das komplett alleine zu machen fehlt mir die Zeit) beschließen und durchsetzen. Gerade das Ziel des quelloffenen Endproduktes setzt ja gerade einen sauber programmierten und (auch für die Endnutzer, die den Code gar nicht sehen müssen) dokumentierten Code voraus.

    Hallo zusammen,


    es kommt mir so vor, als hätte ich schon hunderte Male etwas über mein geplantes Control Panel im Forum geschrieben, laut meinem Profil war das allerdings nur einmal der Fall. Damals suchte ich nach einigen Testern, die mich als Serveradmins mit Feedback und Ideen während der Entwicklung des Panels unterstützten. Da sich allerdings nur eine seeeeehr kleine Personengruppe gemeldet hat, hätte sich das nicht wirklich gelohnt.


    Nichtsdestotrotz möchte ich dieses Projekt durchführen, und zwar Open Source und gut dokumentiert. Wenn ich mal im Forum unterwegs bin und mir Such- und Angebots-Threads ansehe, dann wird immer wieder nach Control Panels gesucht, eine simple und leicht verwendbare Lösung gibt es scheinbar nicht. Genau da möchte ich einsteigen, ich möchte ein Produkt entwickeln, welches auch von Personen ohne große Technikvorgeschichte bedient und konfiguriert werden kann, und in dem man in sehr einfacher Weise in der Lage ist, seinen gesamten Server zu verwalten. Dabei spreche ich hauptsächlich von einem User Control Panel, also dem Teil, der von den den Spielern genutzt wird. Ein Control Panel, mit dem man den Server verwalten (neustarten, Konfiguration ändern, ...) kann, wäre als Erweiterung jedoch auch denkbar.


    Es stehen noch einige offene Fragen im Raum, die ich leider noch nicht klären konnte, da ich dafür leider viel zu wenig Erfahrung mit den heutigen SA:MP-Servern habe. Die wichtigste davon ist: Ist ein solches System überhaupt umsetzbar? Damit meine ich nicht, ob sich das programmieren lässt, denn mit den entsprechenden Kenntnissen lässt sich sehr viel umsetzen - Viel mehr geht es mir um die Theorie dahinter. Gibt es genug Gemeinsamkeiten zwischen allen Servern verschiedener Gamemodes, sodass man auf Basis derer ein erweiterbares Grundgerüst für solch ein Panel erstellen kann? Nochmal präziser: Sind auf einzelne Server zurechtgeschnittene UCPs die beste und einzige Möglichkeit, oder funktionieren auch allgemeine (stark konfigurierbare) UCPs gut?

    Logischerweise soll dieses Panel als Standalone laufen. Gemeint ist damit, dass es kein Addon für ein Forensystem oder ähnliches ist, sondern komplett selbstständig läuft.
    Dieser Thread zielt primär darauf ab, Mitentwickler zu finden, welche sich an diesem Projekt aktiv beteiligen.


    Die Projektkoordination würde ich gerne übernehmen und beteilige mich auch aktiv am Coding. Ich möchte das Projekt über ein GitHub-Repository laufen lassen, Erfahrung mit Git ist also wünschenswert (notfalls kann man sich hier auch nochmal einlesen. Irgendwo gibt's das auch in Deutsch, müsstet ihr selbst suchen). Ich würde es auch bevorzugen keine Entwickler dabei zu haben, die gerade erst lernen zu coden. Der zeitliche Rahmen ist mir relativ egal, Ziel ist allerdings ein Ticken Professionalität.


    Verwendete Technologien werden sein:

    • PHP (5.4 oder höher, Objektorientiert!)
    • MySQL (theoretisch könnte jedes SQL-basierte Datenbanksystem herhalten)
    • HTML 5
    • CSS 3
    • Javascript (+ jQuery, ggf. jQuery UI / vielleicht aber auch AngularJS)

    Ich bitte also jeden, der daran Interesse hat, mir eine PN zu schreiben in der er sich kurz vorstellt und mir sagt, was er zum Projekt beitragen kann. Ich möchte niemandem jedes kleine bisschen an Infos aus der Nase ziehen, ein schöner Text würde mich also freuen (Solange ihr die Technologien beherrscht habt ihr eigentlich fast schon gewonnen).


    Ich bitte darum, dass mich NIEMAND (!!!) in Skype hinzufügt um mit mir über das Projekt zu reden. Ihr könnt gerne per PN nachfragen, in Skype werde ich euch aber erst aufnehmen, sobald ich weiß, dass ihr als Teammitglied geeignet seid.

    Noch nicht aufhören zu lesen!
    Solltet ihr nicht daran interessiert sein, zu entwickeln, habt aber (konstruktive!) Meinungen zu oben gestellter Frage (Zur Wiederholung: "Sind auf einzelne Server zurechtgeschnittene UCPs die beste und einzige Möglichkeit, oder funktionieren auch allgemeine (stark konfigurierbare) UCPs gut?"), dann könnt ihr diese auch gerne per PN mit mir diskutieren oder direkt im Thread darauf antworten.

    Das einzige was mir beim Anschauen von dem Code einfällt, wäre es die beiden Backticks (\\) durch einen Fronttick zu erseten (also normalen Schrägstrich /).
    Mir ist schon oft aufgefallen, dass relative Pfadangaben sich auf lokalen Servern anders verhalten, als im Webserver, auch wenn ich noch keinen Grund dafür kenne. Vielleicht ist es bei dir ja auch nur so etwas.

    Warum nutzt du die mysql_* extension? Die ist nicht mehr sicher, nutze lieber "mysqli (Objektorientiert oder Prozedual) oder PDO(Objektorientiert)


    +1.


    Habe mal ein jsFiddle dazu erstellt: http://jsfiddle.net/DS79K/2
    Wenn du dem span jeweils ein float: left; gibst, werden sie automatisch in die nächste Zeile gebrochen.


    Außerdem würde ich dir von Inline-CSS abraten.

    HTML
    <div style="width: 250px; height: auto;">


    Da kann man zwar noch erkennen worum es sich handelt, wenn du dann allerdings eine sehr umfangreiche Seite hast, wird es irgendwann schwer, sich da durchzusuchen und herauszufinden wo denn das CSS nun definiert ist. Am besten ist es grundsätzlich sämtliches CSS in eine separate Datei zu packen.

    Das erste Video ist nun online. Mit 43 Minuten ist er zwar um einiges länger als erwartet, dafür ist
    aber all das langweilige Gerede schon in einen Teil gestopft worden (sofern meine zukünftigen Videos
    nicht auch aus langweiliges Gerede bestehen).


    Zuerst geht es um eine kleine Vorstellung von mir und der Tutorialreihe, gefolgt von einfachsten
    PHP-Basics, in diesem Fall mehrere Arten Texte per echo auszugeben, sowie Variablen.


    Ich werde versuchen die nächsten Teile in maximal 15-20 Minuten Länge zu verfrachten, muss den
    Inhalt dafür natürlich aber auch ein wenig anpassen (bzw. einfach zwischen den Sätzen schneiden).


    Auch wenn es hier um die rudimentären Grundlagen und viel zu viel theoretisches Gedöns geht, wäre
    ich über ein erstes Feedback schon froh.
    62WeGxv8aT4


    Neue Videos werde ich dann vermutlich in einem separaten Thread im Tutorial-Bereich ankündigen.

    Da das Interesse also doch relativ hoch ist, habe ich mal damit angefangen was zu produzieren.
    Ein kleines (und dennoch ziemlich langes) Einführungsvideo in die Reihe, zu mir und zu PHP ist bereits gedreht und wird demnächst hochgeladen.


    Worauf eurerseits noch geachtet werden sollte, ist die Aufnahmequalität (habe ein wenig Rauschen im Hintergrund wahrgenommen, vll. hat der ein oder andere von euch ja einen Tipp wie man das recht gut wegbekommt, notfalls müsste ich mir irgendwann ein neues Mikrofon anschaffen). Wenn das Video erstmal fertig und hochgeladen ist (teile es dann hier), wäre es interessant von euch zu erfahren, ob die Soundqualität vertretbar ist, oder da dringend was gemacht werden muss.

    Eigentlich mit keiner der beiden Möglichkeiten. Die erste Version geht aber in die richtige Richtung.



    Beachte wenn du Variablen ausgeben willst: In einer Zeichenkette, die von doppelten Anführungszeichen eingeleitet wird ("So wie diese") kannst du Variablennamen direkt in die Anführungszeichen schreiben, damit diese ausgegeben werden. Möchtest du das nicht tun, oder verwendest du einfache Anführungszeichen ('So wie diese hier'), dann musst du diese Zeichenketten mit einem Punkt zusammenfügen.

    PHP
    // Also _nicht_ so:
    echo "Dein Level ist " $level ""; // Das hintere Anführungszeichen kannst du dir sparen, da darin ja kein Text ist
    // Sondern so:
    echo "Dein Level ist " . $level;


    Hoffe ich konnte damit helfen.

    PHP
    header('Location: reg.php?show=' . $_POST["LOGNAME"]);


    So würde es funktionieren. Es ist jedoch wichtig, darauf zu achten, dass die header-Methode vor jeder Ausgabe aufgerufen wird. Wenn du eine Zeile über dem header beispielsweise etwas per echo ausgibst, funktioniert die Weiterleitung nicht mehr.

    Ich verwende grundsätzlich eigentlich kein MySQLi, sondern PDO. Dieses unterstützt 12 verschiedene Treiber (nicht nur MySQL) und bietet eigentlich sämtliche Vorteile von MySQLi ebenfalls an. Es ist zwar etwas langsamer, aber wenn es um maximale Geschwindigkeit gehen soll, muss man sowieso auf die native MySQL-Erweiterung zurückgreifen, da diese am schnellsten ist.
    @BirD: Datenbanken möchte ich grundsätzlich bereits so früh wie möglich einbinden, da so gut wie alle Projekte irgendwo auf Datenbanken setzen. OO-PHP wäre auch eines meiner Ziele.