PHPMaster.com: Entdecken Aspect Oriented Programming mit CodeIgniter, Teil 3

PHPMaster.com ist zurück mit der dritten Teil der Serie geht es um Aspect Oriented Programming mit dem CodeIgniter Rahmen. ( Teil 1 , Teil 2 )

In den vorangegangenen Teilen der Serie haben wir gelernt, über AOP Konzepte und die Notwendigkeit für den Einsatz von AOP in Großprojekten und ich stellte CodeIgniter der Haken als bequemen Mechanismus zum Erstellen von AOP-Funktionalität von Grund auf. In diesem Teil werde ich Ihnen zeigen, wie sowohl XML und comment-Techniken verwenden, um benutzerdefinierte AOP-Funktionalität zu erstellen, wenn ein engagierter AOP-Framework ist nicht vorhanden.

Sie beginnen mit dem XML-Konfigurationsdatei, die ein paar Aspekte und pointcuts für die Anwendung definiert. Diese wird dann über die in „applyBeforeAspects“ gelesen und die Aspekte, zuerst ausgeführt werden sollte, extrahiert werden, geladen und ausgeführt. Anschließend nehmen sie die anderen Ansatz – basierend auf Docblock Kommentare – und in den Kommentaren (das @ vor und @ nach tags) ziehen und laden / ausführen Aspekte, die Art und Weise statt.

PHPDeveloper.org

Fabien Potencier Blog: Erstellen Sie Ihre eigenen Rahmen … auf der Oberseite des Symfony2 Komponenten (Teil 11)

In von seinem „Build einen Rahmenbeschluss auf der Symfony2“, Fabien Potencier verbessert seinen früheren Versionen des Codes, indem in der HttpKernel Unterstützung für den Umgang mit Ereignissen und Fehlern, die auftreten könnten in der Anwendung.

Wenn Sie unsere Rahmenbedingungen gerade jetzt, würden Sie wahrscheinlich um die Unterstützung für benutzerdefinierte Fehlermeldungen hinzuzufügen. Im Moment haben wir 404 und 500 Fehler zu unterstützen, aber die Antworten sind in das Framework selbst einprogrammiert. So dass sie individuell ist leicht genug, aber: Versand eines neuen Ereignisses und hören Sie es. Doing es richtig heißt, dass der Zuhörer zu einer regelmäßigen Controller aufgerufen hat. Aber was, wenn der Fehler-Controller löst eine Ausnahme? Sie werden am Ende in einer Endlosschleife. Es sollte ein einfacher Weg sein, oder?

Mit dem „RouterListener“-Funktionalität, setzt er ein „ExceptionListener“ und Punkte, die zu einer Fehlerbehandlung Controller mit eigenem „exceptionAction“. Diese Aktion nimmt die Informationen zur Ausnahme und zeigt ein „Something went wrong!“ Nachricht zusammen mit den Einzelheiten. Er enthält außerdem ein Update auf die Response-Handling für die Rückgabe eines Strings zurück aus der Steuerung statt einer Response-Objekt zu ermöglichen.

PHPDeveloper.org

Fabien Potencier Blog: Erstellen Sie Ihre eigenen Rahmen … auf der Oberseite des Symfony2 Komponenten (Teil 9)

Fabien Potencier hat geschrieben das von seinem „Aufbau eines Rahmens für die Symfony2 Komponenten -Serie. In dieser neuesten Tutorial nimmt er den einfachen Rahmen er bereits angelegt ist (komplett mit einigen Unit-Tests) und macht es leichter, zu erweitern.

Unsere Rahmen fehlt noch ein wichtiges Merkmal eines jeden guten Rahmen: Erweiterbarkeit. Als erweiterbare bedeutet, dass die Entwickler in der Lage sein leicht in den Rahmen Lebenszyklus Haken, um den Weg der Antrag bearbeitet ändern sollte.

Er wählt die Observer-Entwurfsmuster als Grundlage für sein Beispiel, so dass jede Art von Verhalten / Aktionen, die auf den Rahmen der Ausführung hinzugefügt werden. Er umfasst die Symfony2 Dispatcher, um diese Arbeit zu machen und auch den Code für ein „Griff“-Methode, um Feuer off-Veranstaltungen. Er führt ein „ResponseEvent“ jedes Mal den Rahmen ausgeführt wird. Ein „addListener“-Methode bietet den Haken, um einen Rückruf zu einer Veranstaltung gelten – in seinem Fall eine anonyme Funktion (oder Schließung).

PHPDeveloper.org

Fabien Potencier Blog: Erstellen Sie Ihre eigenen Rahmen … auf der Oberseite des Symfony2 Komponenten (Teil 6)

In der zum Erstellen eines benutzerdefinierten Rahmen auf der Oberseite des Symfony2 Komponenten, Fabien Potencier schaut, wie die vorherigen Beispiele durch das Austauschen der mehr prozedurale Controller mit tatsächlichen Klassen zu verbessern.

Der Umzug ist ziemlich einfach und macht sehr viel Sinn, sobald man mehr Seiten zu erstellen, aber Sie können einen nicht wünschenswerten Nebeneffekt bemerkt haben … Die LeapYearController Klasse ist immer instanziiert, auch wenn die angeforderte URL nicht mit der leap_year Route. Dies ist für einen Hauptgrund schlecht: Leistung klug, alle Controller für alle Strecken muss nun für jede Anforderung instanziiert werden. Es wäre besser, wenn Steuerungen waren faul-geladen, so dass nur die Steuerung mit den passenden Route zugeordnet wird instanziiert.

Um das Problem zu lösen, nutzt er die HttpKernel Komponente und ihrer „Controller Resolver“, um herauszufinden, wie man den Controller aufrufen und ihm die Parameter, sondern nur bei Bedarf. Ein Resolver-Objekt erstellt wird und dass wird verwendet, um die Controller-Objekt zu instanziieren. Sample „action“ ruft enthalten sind zum Ausfüllen des Basis-Controller (seine „Schaltjahr“ zB) und die volle resultierende Code ist sowohl für den Rahmen und die neuen objektorientierten Controller enthalten.

PHPDeveloper.org

Nelm.io Blog: Komponist: Teil 1 – Was & Warum

Auf der Nelm.io Blog heute gibt es einen neuen Beitrag (Teil einer Serie) über mit Composer und Packagist um PHP-Anwendungen zu verwalten als Pakete.

Sie können über Composer und Packagist in letzter Zeit gehört habe . Kurz gesagt, ist Komponist ein neues Paket-Manager für PHP-Bibliotheken. Nicht wenige Menschen haben über den Mangel an Informationen darüber beschwert, oder einfach nur schien es, als das, was sie war verwirrt, oder warum zum Teufel würden wir so etwas tun. Dies ist mein Versuch zur Klärung Dinge.

Die kurz erklärt, was das Tool (s) zu tun und zeigt, wie Sie die Konfiguration auf beiden Seiten – Composer, um die Pakete und die Paket-Definitions-Konfigurationen (einschließlich Metadaten über das Projekt und alle Abhängigkeiten) zu verwalten. Er beantwortet auch einige „Warum“-Fragen über die Notwendigkeit einen Paket-Manager, mit dieser im Vergleich zu PEAR, die Wahl des JSON für config Definition und einen aktuellen Status des Projekts.

PHPDeveloper.org

PHPMaster.com: Lokalisieren von PHP-Anwendungen „The Right Way“, Teil 5

PHPMaster.com hat die fünfte Teil ihrer „Lokalisieren von PHP Applications ‚The Right Way“-Serie, diesmal mit dem Fokus auf posted Extrahieren von Daten aus der. pot Template-Dateien in Ihrem PHP definieren. (Dies ist der letzte Teil der Serie.)

In Teil 4 haben Sie gelernt, wie man gettext für einen der komplexesten Aspekte der Lokalisierung kann ein Entwickler Gesicht, Plural verwenden Formen. In diesem, dem letzten Teil der fünfteiligen Serie werde ich Ihnen beibringen, wie man einen Teil der Lokalisierungsprozess durch die Extraktion msgids und Erzeugung eines PO-Template-Datei (. Pot) aus Ihrer Anwendung PHP-Code zu automatisieren.

Sie zeigen, wie die xgettext Kommandozeilen-Tool verwenden, um herausziehen Strings aus Ihrer Quelle und automatisch machen sie zu einem Domain-Template. Sie helfen Ihnen bei der Einrichtung drei Muster-PHP-Dateien und führen Sie den Befehl xgettext sie auf, ziehen Sie Nachrichten in den Text der Dateien einzurichten Schlüssel in der Vorlage definiert. Screenshots enthalten sind zeigt, wie Poedit verwenden, um diese Vorlagen für Ihre neue Übersetzungen zu verwenden.

PHPDeveloper.org

Ibuildings TechPortal: PHPNW11 Conference Report – Teil II

Auf der Ibuildings TechPortal Marco De Bortoli hat posted zweiten Teil von seinem Resümee des diesjährigen PHP North West Konferenz (Sie können die zuerst finden Teil hier ). In dieser Rolle, die er kurz auf die Tutorial Tag und der Hauptkonferenz, einschließlich der Sitzungen besuchte er.

Das war ein sehr gesellschaftliches Ereignis vom ersten Tag an, warm und lustig mit einer Horde von Geeks versuchen, mit „normalen Menschen“ (ja, das kann passieren, wenn Sie die PHPNW Konferenz teilnehmen, so versuchen Sie es nicht versäumen im nächsten Jahr) zu mischen. Das Beste an PHP-Konferenzen ist Wissensaustausch, Sie werden nicht ohne hundert verschiedene Gedanken und Ideen, wie man es besser machen zu lassen. Noch einmal – auf jeden Fall eine gute Zeit, sowohl persönlich als auch beruflich. Wenn du nicht da warst, dich vermisst out!

Die Sitzungen er ausdrücklich erwähnt, sind die „Sicherheit“ zu sprechen Arne Blankerts „, Maintainable Anwendungen in PHP-Komponenten verwenden“ von Stuart Herbert „PHP Extensions, warum und was?“ von Derick Rethans und „Akzeptanz und Integration Testing Mit Behat“ Ben Waine .

PHPDeveloper.org

Ian Barber Blog: Linear Regression in PHP (Teil 2)

In einem früheren Post Ian Barber suchte am Code, den Sie verwenden können, um lineare Regression in PHP zu bestimmen. In Teil zwei er restrukturiert Sie den Code in eine besser handhabbare Klasse statt der meist verfahrenstechnische Prozess war es vor.

In der letzten Beitrag hatten wir eine einfache Intensivierung Algorithmus und ein Gradientenabstieg Umsetzung, für den Einbau einer Linie, um einen Satz Punkte mit einem variablen und einem „Ergebnis“. Wie ich aber bereits erwähnt, ist es relativ einfach zu, dass mehrere Variablen zu erweitern, und auch um Kurven, anstatt nur gerade Linien. Für dieses Beispiel habe ich den Code leicht in eine Klasse , um das Leben ein wenig leichter reorganisiert, aber die wichtigsten Änderungen sind nur die Hypothese und lernen Funktionen.

Er strukturiert die Lernmethode zu erleichtern, um die Wiederverwendung und beinhaltet eine „scale data“-Methode, um die Unebenheiten in den Daten ausgleichen und berechnen Sie die Varianz.

PHPDeveloper.org

PHPMaster.com: Erstellen einer mobilen Foto-Blog, Teil 1

PHPMaster.com hat eine neue Serie von Tutorials begann heute mit dem ersten Teil von „ Erstellen eines Mobile Photo Blog „. Der Satz von Tutorials zeigen Ihnen, wie Sie ein einfaches Blogging-Tool, das Hochladen von Bildern wird als über eine E-Mail-Adresse eingereicht erstellen.

Dies ist der erste Artikel in einer zweiteiligen Serie, in der ich dir zeigen werde, wie man ein Foto-Blog als Teil Ihrer persönlichen Website, die Sie von Ihrem Handy einfach per E-Mail aktualisieren können erstellen. Du wirst ein Skript schreiben, um den Posteingang eines Email-Accounts auf neue Nachrichten über POP3 prüfen; das Skript werden die Nachrichten ‚Betreffzeile, Text und Anhänge extrahieren und Aktualisierung einer Datenbank entsprechend. Nun können Sie die Informationen aus der Datenbank für die Darstellung auf Ihrem Blog, in einer Seitenleiste, oder wie auch immer Sie für richtig halten.

Der Start mit einigen der Überlegungen zur Sicherheit müssen Sie beachten, wenn ein Skript erstellen, wie diese je nachdem, wie offen Sie wollen, dass es (wie Filterung auf der „Von“-E-Mail oder das Senden einer Nachricht Genehmigung vor der Veröffentlichung basiert). Eingeschlossen in der Post ist der SQL, um ihre grundlegenden Tabellen für Beiträge, Bilddetails und die Pendenzen erstellen. Es gibt auch eine PHP-Klasse (POP3), dass ein IMAP-Verbindung zu einem Remote-Server authentifiziert, wie Ihr Konto und holt die neuesten Nachrichten mit ihren Anhängen. Diese sind mit einem schnellen script gezogen und angezeigt über eine foreach.

Der zweite Teil wird in mehreren der Integration der Bilder und die Genehmigung Technik vor der Veröffentlichung der Bilder zu erhalten.

PHPDeveloper.org

Decal CMS Blog: Testen Sie Ihre Website vor dem Start: Wie zum Inhalt Antriebskonzept (Teil 1) lassen

Neues aus der Decal Blog heute gibt es eine , nicht das Schreiben von Tests für den Code aber Prüfmethoden für Ihre Website als Ganzes (wie A / B-Tests). Dies ist der erste Teil einer Serie.

Für eine lange Zeit, wir hier bei Working Software wurden stark Gläubigen in der „Inhalt vorangeht Design“-Philosophie, wie berühmt durch Jeffrey Zeldman und hier zusammengefasst auf UX Myths . […] Wir sind der Neubelebung dieser Website, so dass wir durch den Prozess der Erstellung unserer „content first“ Wireframe mit Decal Mockups gegangen war.

Sie gehen durch den gesamten Prozess – wie sie entschieden, was auf der Website zu testen, die Methoden, die sie für die Prüfung (einschließlich PickFu und Feedback Armee ) und einige der Ergebnisse des Feedbacks aus jeder.

PHPDeveloper.org