3 Stimmen

Einige Anfängerfragen dazu, wie man eine CRUD-Anwendung auf PhalconPHP portiert

Ich habe gerade angefangen, PhalconPHP 1.3.1 für eine App für meine Masterarbeit zu verwenden. Ist noch nicht vollständig entwickelt, aber ich arbeite gerade am CRUD, also nachdem ich einige Funktionen und die UI zum Laufen gebracht habe, habe ich beschlossen, dieses erstaunliche Framework einzuführen. Ich war neu in der Webentwicklung, den MVC- und ORM-Mustern, bis ich diese Arbeit begann. Es ist das erste Mal, dass ich auch Template-Engines verwende. Bisher konnte ich erfolgreich alles portieren, aber ich befürchte, dass ich es nicht richtig mache. Ich habe damit begonnen, meinen Code dem mit den Entwicklungswerkzeugen erstellten PhalconPHP-Bootstrap hinzuzufügen. Jetzt fange ich mit den Fragen an:

1º- Da es sich um eine Web-App handelt, die ich in Zukunft mit Phonegap umhüllen werde, verwende ich die AJAX-Ladefunktion, um nicht jedes Mal das Menü und die Bibliotheken zu laden, wenn sich die id = "content" ändert. Dafür verwende ich $('#content').load(); für den Inhalt und historyjs-Funktionen, um die URL zu ändern. Ich habe keinen Originalcode verändert, außer dass ich auf Nginx die sauberen URLs konfiguriert habe

try_files $uri $uri/ /index.php?_url=$uri&$args;

In der Dokumentation wird eine andere Möglichkeit zur Verwendung von AJAX gezeigt, daher befürchte ich, dass ich diese Methode nicht verwenden sollte und so irgendwie das MVC-Muster breche.

2º- In Bezug darauf füge ich der AJAX dynamisch geladenen URL eine Variable ?header=yes hinzu, die mir anzeigt, nur den Inhalt zu laden. Dafür mache ich in jedem Controller, in den indexActions, folgendes:

$header = filterinput(INPUTGET, 'header');

$this->view->setVar("header",$header);

Und danach überprüfe ich die Variable einfach mit Volt. Ist das der richtige Weg? Ich dachte daran, alles mit Volt zu machen, aber ich habe nicht herausgefunden, wie.

3º- Außerdem, weil das Menü für jede Seite gemeinsam ist, habe ich im Hauptindex.volt (im Ordner view) das Menü je nach Variable eingebunden. Ist das auch in Ordnung? Oder sollte ich es in die verschiedenen Ansichten verschieben?

4º- Aufgrund von 1º habe ich eigene Klickfunktionen erstellt, bei denen ich eine neue URL push und den Inhalt lade. Auch hier befürchte ich, dass ich gute Phalcon-Praktiken verletze.

5º- Der JS/HTML-Teil ist derzeit nur reiner Code, ich habe einfach den PHP-Teil durch die Volt-Syntax ersetzt. Sollte ich auch Code wie

durch seine Volt-Syntax ersetzen?

Ich würde es begrüßen, wenn Sie mir das erklären und Vorschläge machen könnten, falls Änderungen erforderlich sind.

1voto

Ich verwende derzeit Phalcon und Volt für ein kommerzielles Projekt und finde ständig neue Wege, Dinge zu erledigen. Du musst wirklich verschiedene Methoden ausprobieren und sehen, ob sie für deine Bedürfnisse funktionieren. Wenn du daran interessiert bist, auf mehreren Geräten mit den gleichen Daten zu arbeiten, würde ich mir die Phalcon Micro-Version ansehen und diese als REST-API verwenden. Erstelle dann ein weiteres Projekt, das die Phalcon MVC-Version verwendet, um das Client-seitige Rendern durchzuführen, und verwende dann Ajax, um die Daten von deinem Phalcon Micro-Projekt abzurufen. Auf diese Weise musst du, wenn du native mobile, Desktop, TV, Tablet oder was auch immer du brauchst, gehst, deinen Code nicht neu schreiben, du musst nur eine neue Benutzeroberfläche erstellen.

Etwas anderes, worauf du achten solltest, sind Partials. Du kannst deinen Header, Footer und die Navigation in einem Partial separieren und sie folgendermaßen aufrufen:

{{ partial("partials/layout/footer") }}

Du solltest auch eine ordentliche REST-API-URL-Struktur für dein Phalcon Micro-Projekt erstellen. Wenn du alle Benutzer erhalten möchtest, kannst du etwas wie /users tun und um einen Benutzer nach ID zu erhalten, kannst du /users/1 machen. Das ist sehr sehr grundlegend, also habe ich unten einen großartigen Artikel kopiert, um dir mehr Informationen über REST-API und eine gute Struktur zu geben.

Du kannst auch eine Volt-Variable wie folgt setzen:

$this->view->header = $header;

und sie dann so aufrufen:

{{ header }}

Ich hoffe, das gibt dir eine kleine Vorstellung, aber probiere es einfach aus und lies ein paar Artikel von verschiedenen Blogs, um eine Vorstellung davon zu bekommen, was andere Leute tun. Das Phalcon-Forum und der IRC-Kanal sind auch ein wirklich guter Ort, um Hilfe zu bekommen.

Einige gute Artikel und Ressourcen

http://inmensosofa.blogspot.co.uk/2011/10/look-into-various-rest-apis.html http://docs.phalconphp.com/en/latest/reference/micro.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X