PHP-Entwickler suchen nach Lösungen, die äquivalent zu Java-EE-Architektur
Ich bin ein PHP-Entwickler habe ich gelesen, dass Java-EE-Technologien und ich möchte die Umsetzung solcher Technologien( n-tier, EJB, JPA...) mit PHP und alles was kommt mit (MySQL, Apache...).
- Wir portieren Java Message Services-PHP github.com/php-enqueue/enqueue-dev/blob/master/docs/.... Hoffe, es in handliches kommt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht.
PHP ist nicht Java. Schreiben von PHP-code wie würden Sie das schreiben von Java-code ist dumme und kontraproduktiv. Es ist sehr wahrscheinlich, um zukünftige maintainer des Codes wollen, Sie zu verletzen.
Beibehalten werden muss ein Objekt? Verwenden Sie ein ORM.
Brauchen eine multi-tier-Architektur? Wenn Sie Ihrem code mit der richtigen Trennung von Bedenken, die Sie bereits bekommen 9/10ths der Art und Weise gibt.
EJBs? Jedes mal, wenn ich Lesen Sie den Wikipedia-Artikel, Sie sind unterschiedlich beschrieben. Wiederverwendbare Komponenten? Mit einer standardisierten Schnittstelle für das, was, verteilte Anwendungen und Daten-Persistenz? Nützlich, ja, aber das ist nicht PHP. ORMs und ein eine gute Nachricht/Arbeit-Warteschlange wird den job zu erledigen.
The bottom line: Für die überwiegende Mehrheit von PHP-Skripten, werden Sie nicht brauchen keine "enterprise-Technologien." Wenn Sie das tun, dann machst du etwas falsch: entweder haben Sie mit overarchitected die Anwendung, oder die Sie gewählt haben, die falsche Plattform.
Beginnen, indem Kommissionierung ein modernes PHP-framework, und bauen Sie Ihre Anwendung von dort aus. Wenn Sie aus Java, dann Zend Framework wird scheinen die wenigsten Ausländer. Kohana, Symfony und CodeIgniter sind alle lohnt. Vermeiden Sie Kuchen für jetzt.
Halten Sie es einfach und Sie nicht schief gehen kann.
Deine Frage eine aufschlussreiche ein. Das ist, weil, wie Ihr Unternehmen erfolgreicher wird, wird es scale-up um die Last zu unterstützen, mehr Verkehr. So haben Sie, um Ihre separate PHP-code in Schichten, die auf unterschiedlichen Ebenen (entweder separate Server oder separaten Virtuellen Maschinen, wie bei Xen.)
Ich zum Beispiel ein system entwickelt, im letzten Jahr implementiert in PHP auf 10 Linux-OpenSUSE-Servern mit über 25 Xen-Virtuelle Maschinen (VMs.) Einige der VM waren, load-Balancer, waren einige der front-end-Stufen, einige von Ihnen waren mittleren Ebenen, und einige wurden back-end-Ebenen, einige der enthaltenen MySQL-Datenbanken, und wir hatten ein paar dedicated Server, wurden die RAID-arrays für user-file-storage. Wir erstellten NFS-mounts wie nötig zu speichern/Lesen von Dateien zu/aus dem RAID-array.
Ordnen wir die Ebenen, die in drei zusammenhängenden Gruppen, so könnten wir unabhängige test-sites für QA -, Staging - (Anwender-Akzeptanz) und Produktion.
Also unsere PHP-software war getrennt in lose gekoppelten Ebenen wie folgt:
FRONT-END-STUFE (VMs)
einschließlich AJAX Antworten, Validierung
code, navigation, etc.
einschließlich Admin-Dashboard mit
Zugriff auf die system-Metriken sowie Unit-Test-Gurtzeuge
RESTful-Web-Services-API (mit token)
zur Erbringung von Leistungen an Partner und
andere, die das system nutzen, als
"Plattform."
MITTLERER STUFE (VMs)
spezifisch für die system-oder Geschäfts -,
oder die Rollen und Berechtigungen für
verschiedene Anwendungsfälle
Bewilligungen und Beiträge zu Sozialen
Netzwerke oder Partner-Anwendungen,
etc.
BACK-END-STUFE (VMs)
Abfragen, Einfügungen, Aktualisierungen, Löschungen zu
die Datenbank (implementiert als Vorbereitet
Anweisungen) in einer Form, die
angepasst, wenn die änderungen in der Datenbank zu
eine andere Art...Beispiel: aus
PostgreSQL zu MySQL oder Umgekehrt.
Enthält PHP-code für das sichern und
wiederherstellen von Datenbanken.
Die Idee ein anderer Befragter brachte der Verwendung eines Framework für enterprise-software scheinen ziemlich blöd zu mir. Wenn Sie entwickeln ein Studenten-Projekt oder ein "proof-of-concept" auf einem einzigen server, und wenn Sie bereits vertraut sind mit einem Rahmen, kann es haben, deren Verwendung für rapid prototyping.
Aber wie Sie oben sehen, wenn Sie schreiben, die Produktion hochwertigen Codes, verteilt über mehrere Ebenen, müssen Sie nicht die Krücke der mit einem Rahmen.
Wo würden Sie die Rahmen verknüpfen, in allen Orten, in Ihrem code? Auf jeder Stufe? Schlechte Idee. Frameworks enthalten zahlreiche Seiten, die Sie brauchen und können Sie nicht brauchen. So verlangsamen Sie die Leistung, vor allem, wenn multipliziert, indem jedes tier, auf dem Sie installieren müssen Sie.
Ebenso ineffizient würde werden, um eine "Schicht" nur um zu enthalten, die einen Rahmen, dass jeder eine andere Ebene wäre noch zu nennen. Der nutzen von software-Schichten werden lose gekoppelt und unabhängig von den anderen Schichten, so dass bei änderungen in einer Schicht, die Sie nicht benötigen änderungen, die in einer anderen Ebene.
Neben, Entwickler schreiben-Produktion-Qualität-code nicht angewiesen auf eine "Schweizer-Armee-Messer", die Rahmenbedingungen darstellen. Diese Entwickler sind durchaus in der Lage zu schreiben gezielten effizienten code und, wenn notwendig, die Wiederverwendung von Klassen in eine Bibliothek, die Sie möglicherweise entwickelt haben, die für frühere Projekte.