Ich habe in PHP für ungefähr 8 Jahre als Hobby entwickelt. Im Jahr 2009 habe ich Codeigniter aufgenommen und seitdem habe ich es nicht geschafft, ein einziges Projekt zu entwickeln.
Ich finde, es verlangsamt mich beim Versuch, herauszufinden, wie ich es so ändern kann, dass es so funktioniert, wie ich es möchte. Wenn ich in reinem PHP arbeite, würde ich es wissen oder ich könnte schnell ein Snippet für finden.
Ich habe CodeIgniter, Kohana und Symfony ausprobiert. Ich mag die Benutzerfreundlichkeit (und ich habe auch angefangen, Doctrine als ORM zu verwenden, was meine Datenbankarbeit massiv beschleunigt hat), aber ich finde, dass Projekte 3-4-mal so viel Zeit in Anspruch nehmen wie in reinem PHP. Ich langweile mich und bin frustriert, wenn ich keine Lösung für ein Problem finde, das ich zuvor in reinem PHP gelöst habe.
Hat jemand von der Verwendung von Frameworks zu einem No-Framework-Ansatz zurückgekehrt? Gibt es so etwas wie ein grundlegendes Sicherheitsframework (XSS verhindern, gepostete Daten filtern, eine Reinigungsfunktion für die Verwendung mit Datenbanken bereitstellen)? Ich denke, so etwas würde mir viel mehr nützen als ein umfassender Rahmen. Ich denke, das Lernen, mit Frameworks zu arbeiten, hat mir viel beigebracht, aber ich würde gerne mit meinem eigenen Code arbeiten.
quelle
Antworten:
Aktuelle Versionen von PHP5 enthalten einen Großteil des Sicherheitsframeworks, das Sie als Teil der Standardbibliothek suchen.
httponly
Attribut zu session_set_cookie_params () (Schützt vor Skripten, die das Sitzungscookie in kompatiblen Browsern lesen)httponly
Attribut auch mit setcookie () verwenden .Wenn Sie HTML als Eingabe akzeptieren, empfehle ich, HTML Purifier zu verwenden und es über eine FILTER_CALLBACK- Zeile in Ihrem filter_input_array-Setup aufzurufen. Der auf der Whitelist basierende Ansatz zur Eingabesicherheit ist eine hervorragende (und sehr leistungsstarke) erste Verteidigungslinie gegen XSS.
Soweit ich das beurteilen kann, verfügt PHP nicht über einen Mechanismus zum Schutz vor Fälschungen von standortübergreifenden Anfragen , aber ich bin sicher, dass Google Ihnen dabei helfen kann. Die OWASP-Sicherheits-Cheatsheets enthalten einen Abschnitt darüber, wenn Sie Ihren eigenen Schutz implementieren möchten.
Aus Neugier habe ich mich dazu entschlossen, auch eigenständige Komponenten zu untersuchen. Folgendes habe ich bisher gefunden:
Vorlage:
Sachen, die ich immer noch nicht richtig untersucht habe:
quelle
Ich glaube nicht an Frameworks ... Ich habe in vielen von ihnen gearbeitet.
Gründe für den Hass auf MVC-Frameworks:
1) Code aufblähen, ich kaufe Premium-Klassen, die mich bei der Entwicklung unterstützen. Wie Formularklassen oder SQL-Klassen.
2) Ich glaube, dass MVC-Frameworks nicht einfach zu portieren sind, insbesondere wenn Abhängigkeitsmanager verwendet werden.
3) Ich glaube, dass Sie mit einem MVC-Framework tatsächlich mehr Code schreiben, als wenn Sie ein Boilerplate mit einer Menge nützlicher Klassen verwenden müssten, die die Authentifizierung usw. handhaben.
4) Die meisten Frameworks bieten auch nur eine oder zwei Datenbanken an.
Ich würde vorschlagen, ein Formular-Framework mit Authentifizierung und Texteditor und ein SQL-Framework wie madoo + eine E-Mail-Klasse zu finden ...
90% Ihrer Bewerbung besteht immer aus Formularen, SQL- und Ajax-Klassen - der Rest kann nur bei Bedarf erworben werden
Ich bin ein Minimalist und habe Probleme mit der Idee, Code in meiner Anwendung zu haben, der nichts bewirkt ... nur für den Fall, dass ich ihn brauche, funktioniert er bei mir nicht.
quelle
Mit so viel Erfahrung müssen Sie Ihre eigenen Lieblingsbibliotheken haben, diese von Hand auswählen und Ihr eigenes einfaches Framework erstellen. Framework oder kein Framework (und welches dazu) hängt von der Art des Projekts ab, kein Handschuh passt für alle. Ich würde daher dringend empfehlen, dass Sie, wenn Sie das Gefühl haben, dass die vorhandenen Frameworks Sie verlangsamen, etwas Zeit damit verbringen und ein Framework entwickeln, das Ihren Anforderungen entspricht.
quelle
Basierend auf Ihrer Aussage, dass Sie PHP als Hobby verwendet haben, sowie Ihrer Profilaussage "Langsam dorthin gelangen" scheint dies ein Problem der Lernkurve zu sein. Sie scheinen nicht über die Tiefe und Breite der Erfahrung zu verfügen, um a) zu verstehen, wie innerhalb der Struktur zu arbeiten ist, die das Framework auferlegt, und b) Sie können daher nicht von den Effizienzvorteilen profitieren, die das Framework ermöglicht.
Ich fordere Sie auf, dabei zu bleiben. Kehren Sie mit den Video-Tutorials zum Anfang zurück. Suchen und lesen Sie den Code anderer Personen, bis Sie ihn verstanden haben. Erstellen Sie Ihre Projekte von unten nach oben - starten Sie einfach und fügen Sie Funktionen hinzu. Folgen Sie den Foren und versuchen Sie, Fragen selbst zu beantworten, bevor Sie die Antworten lesen.
Ich programmiere seit fast 20 Jahren professionell auf verschiedenen Plattformen und es dauerte noch eine Weile, bis ich mich mit CI vertraut gemacht hatte. Aber jetzt, wo ich es bin, würde ich (für meine eigenen Projekte) nicht mehr auf reines PHP zurückgreifen, wenn ich nicht eine Website hätte, die so umfangreich ist, dass sie quantifizierbare Leistungsprobleme aufdeckt (denken Sie an Twitter).
quelle
Zend Framework ist dafür wirklich super. Sie können so viel oder so wenig verwenden, wie Sie möchten. Es ist alles in PHP und Open Source codiert, so dass Sie es einfach hacken und zu Ihrem eigenen machen können. Die verschiedenen Komponenten sind nicht so stark voneinander abhängig wie in anderen Frameworks.
Mit einigen Komponenten von Zend können Sie problemlos ein einfaches Framework erstellen.
Probieren Sie es aus!
quelle
Ich weiß genau, wie du dich fühlst. Ich habe vor 4 ~ 5 Jahren in PHP angefangen (ich kam aus Delphi, lol) und habe in reinem PHP angefangen. Was ich zurück hatte, war ein "CMS Panel like", das einfach alle Tabellenfelder las und das Formular erstellte. Nachdem ich irgendwann irgendwie mit PHP Frameworks vertraut war, versuchte ich es zuerst mit CakePHP und mochte es nicht, nachdem ich in Yii eingestiegen war, was meiner Meinung nach ziemlich intuitiv und einfach zu bedienen ist (mit seinem Gii-Generator rockt es ziemlich). Ich habe Symfony, ZF2, Laravel, Yii2-Beta und einige Frameworks für RAD ausprobiert, aber ich fühlte mich immer noch nicht schnell genug wie vor den Frameworks.
Es ist passiert, dass ich mein eigenes Framework entwickelt habe (es war natürlich nicht genau so, dass ich eines Tages aufgewacht bin und gesagt habe "Ich werde ein neues Framework erstellen", was mit der Zeit passiert ist). Ich weiß, dass es eine schlechte, schlechte, schlechte Praxis und eine "Rad-Neuerfindung" ist, ABER ich entwickle meine Projekte jetzt viel schneller (mehr als nur PHP).
Da es sich bei dem Code um eine vollständige MESS handelt, habe ich vor ungefähr einem Monat damit begonnen, mein Framework neu zu formulieren. Jetzt wird Composer verwendet, es werden allgemeine Regeln befolgt, die zwischen den PHP-Frameworks bestehen, und es handelt sich um MVC.
Warum formuliere ich neu? Denn wenn jemand ein Projekt von mir reparieren muss, wird es keine andere Welt sein.
Also verstehe ich dich.
Mein Rat ist, bereiten Sie Ihre Tools vor (nennen Sie es ein Framework, eine voreingestellte App oder wie auch immer die Leute es nennen) und verwenden Sie es so, wie Sie sich besser fühlen, aber befolgen Sie dennoch einige allgemeine Regeln (wie MVC, "einfach zu modulierende" Dinge, die Sie können im Falle eines Defekts ersetzen.
quelle
Für die grundlegende Sicherheit verwende ich eine benutzerdefinierte Filtermethode, die meine Superglobalen einschließt . Die Syntax ist gewöhnungsbedürftig, aber einfacher als die PHP-API filter_var () und lässt Sie nicht die Bereinigung überspringen:
Außerdem konnte inline $ _REQUEST-> sql () entkommen. Verwenden Sie für die Datenbankarbeit jedoch weiterhin parametrisiertes SQL oder das DAL / ORM Ihrer Wahl.
quelle
Ich habe eintägig ToroPHP studiert und fand es ganz nett. Es ist ein minimalistisches Framework, das auf RESTful-Anwendungen ausgerichtet ist. Dies ermöglicht es, den serverseitigen Code modular zu halten, ohne sich mit dem Aufblähen eines Frameworks befassen zu müssen.
quelle
Ich weiß nicht, was Sie beunruhigt, aber Codeigniter ist ein großartiges Framework. Es hat eine schöne Dokumentation und da viele Leute Codeigniter verwenden, finden Sie die ganze Hilfe in der Dokumentation, im Forum oder im Stackoverflow. Ich habe an vielen Frameworks gearbeitet ( Codeigniter, CakePHP, Zend, Spring 3.0, Ruby on Rails), aber ich muss sagen, Codeigniter hat die beste Dokumentation. Es gibt viele Dinge im Codeigiter, die automatisch behandelt werden und Sie müssen sich keine Sorgen um die Sicherheit machen. Die Arbeit an Kern-PHP ist wie die Neuerfindung des Rades. Nun, das Wichtigste ist, dass der Wechsel von einem Kern zu einem Framework viel Mühe erfordert, sobald Sie sich daran gewöhnt haben. Sie werden es lieben. Auch Ruby on Rails ist auch ein großartiges Framework, wenn Sie wissen, welche Vor- und Nachteile Sie haben doppelte Geschwindigkeit haben.
quelle