php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 11.08.2011, 15:35  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 603
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Boah lcrash du bist einfach gut.

Wieder einer dieser "Aha" Effekte.
Klar, man macht nen unterverzeichnis im Modul selbst namens API und durch die URL ruft man es durch api_ auf.

Genau DAS meine ich.
Es ist mir bekannt wie es funktioniert (Stichwort Namespaces) aber auf so eine Idee komme ich überhaupt nicht weil ich es auch nirgends bisher sah.

Dadurch erübrigt sich nämlich auch die Herausforderung der "Unsauberheit" im Code.

Denn wenn ich ein vollständig eigenständiges Module erstelle namens API muss ich entweder auf die DB-Tables der MyModule zugreifen oder ich erstelle sie doppelt, also nochmal neu im API Module.

Es gibt auch Tutorials im Netz zu Ajax und Zend, aber sie setzen überwiegend immer anders an und dein Vorschlag habe ich noch nirgends gesehen.

Der einzige Nachteil der mir auffällt ist, dass ich via Zend_Tool wohl /mymodule/controllers/api/DataController.php nicht erstellen kann.
(Selbst wenn der Folder angelegt ist)
Sprich alle Dateien in diesem Unterverzeichnis müssen immer per Hand (manuell) erstellt werden.
Oder gibt es für Zend_Tool in diesem Fall auch einen "Hack" ?

Bevor ich den Post absende teste ich mal einiges... und es klappt doch... zumindest teilweise
Lösung:
Zitat:
zf.sh create controller Api/Data 1 mymodule
Dann wird es im /Api Verzeichnis erstellt.
Jedoch ist der Klassenname "defekt".

Zitat:
class Mymodule/Api_DataController extends Zend_Controller_Action
Muss natürlich entsprechend geändert werden in:

Zitat:
class Mymodule_Api_DataController extends Zend_Controller_Action
____________________

Update1://
Achja und zu der Diskussion ob es eine vollständige API ist oder nicht:

Das weiß ich selbst nicht, das war auch Inhalt dieses Threads.
Eigentlich brauche ich es nur, damit ich via XHTML Request (Stichwort Ajax) Daten im Hintergrund laden kann.

Die Frage ist halt nur wo finden die entsprechenden Actions ihren Platz.
- in einem ausgelagertem API Modul
- im selben Controller im gleichen Modul
- in einem anderen Controller im gleichen Modul.

Die jetzige Lösung gefällt mir ganz gut und schein auch übersichtlich zu sein:
Im selben Modul in einem extra API Verzeichnis

Geändert von dreamcatcher (11.08.2011 um 15:44 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.08.2011, 16:22  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

Danke. Die Idee kommt ursprünglich von Ryan Mauger und war für admin_* gedacht. Es müsste auch möglich sein mehrere Controller-Directories zu haben und Module ineinander zu verschachteln. Das würde aber einige Arbeit bedeuten.

Unbedingt ansehen:
PHP-Code:
<?php
class Mymodule_Api_DataController extends Zend_Rest_Controller
{
}
Das kann Zend_Tool sowieso nicht leisten. Insofern kein Verlust.

Zitat:
Die Frage ist halt nur wo finden die entsprechenden Actions ihren Platz.
- in einem ausgelagertem API Modul
- im selben Controller im gleichen Modul
- in einem anderen Controller im gleichen Modul.
Das kommt auf den Anwendungsfall an. Ein API-Modul wäre wohl für eine super-globale API nützlich (z.B. für sowas wie Facebook hat), einen Controller wenn es um eine API für das Modul handelt (z.B. News-Modul und die API dient zum Zugriff auf diese Daten) und eine einfache action für einfache Sachen wie ein XHR-Request.
lcrash ist offline   Mit Zitat antworten
Alt 14.08.2011, 06:41  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 603
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Danke für die guten Praxisbeispiele.

Die Abgrenzung zwischen eigenem Controller (News Modul) und nur "actions" habe ich aber noch nicht ganz mitbekommen.

Ab wann fängt eine API an ?
So bald man sie auch "extern" von der Applikation nutzt ?

Sind 3-6 XHR Requests für z.B. eine Kalendarapplikation welcher nicht von außen abgefragt wird sondern einfach nur zum Absetzen und Empfangen der Daten einen extra Controller wert ?

Oder anders gefragt:
Wann wann fängt eine API für ein Modul an und was sind "nur Actions" (wären das z.B. 10 XHR Requests ?) für das Modul ?

Geändert von dreamcatcher (14.08.2011 um 06:49 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Alt 14.08.2011, 15:15  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

Wozu mehrere Actions, wenn du eine Action + ContentSwitch haben kannst.

Es gibt auch interne APIs. Wann du was machst muss du selbst wissen.
lcrash ist offline   Mit Zitat antworten
Alt 14.08.2011, 21:46  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Ab wann fängt eine API an ?
So bald man sie auch "extern" von der Applikation nutzt ?
Würde ich so sagen. Oder aber - siehe lcrash - ist ein Modul so eigenständig, dass Du es über seine eigene Schnittstelle ansprichst.

Zur „HTTP-Api“ gehört letztlich auch das URL-Layout und deren Mapping auf die Applikation. Genau genommen kann das URL-Schema irgendwann die einzige Konstante sein (neben dem impliziten Verhalten), während sich der Rest als eine Art Blackbox komplett verändert.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Projekte iun Zend Studio 8.0 laden was keine Zend Studio Projekte sind litterauspirna Off-Topic Diskussionen 2 13.07.2011 18:47
[Erledigt] Ajax Request an Script schicken, Zend FW Cronkalonca PHP Einsteiger 10 17.05.2011 19:44
Rightmanagement mit ZEND Framework dreamcatcher Software-Design 8 15.04.2011 09:18
Zend Webinare robo47 Off-Topic Diskussionen 0 16.03.2010 10:02
Ajax Anwendung, reines Ajax oder Ajax und Html jackie1983 JavaScript, Ajax und mehr 5 09.02.2010 16:50
Zend Studio (Javascript Unterstützung)? customer-tk Off-Topic Diskussionen 6 12.11.2009 22:42
[S] Zend Framework Coder ThisRockZ Beitragsarchiv 0 14.10.2009 13:14
Social Engine Design umsetzen, Smarty, PHP etwas Ajax SunBella Beitragsarchiv 0 08.10.2009 14:45
Zend Studio for Eclipse und Zend Framework KeKs0r PHP-Fortgeschrittene 5 15.12.2008 15:10
1111: AJAX meets PHP (indirectly) Nikolaus 2.0 Adventskalender 2008 5 15.12.2008 11:00
InterNations: PHP Software Entwickler Internations Beitragsarchiv 0 09.07.2008 11:39
InterNations: PHP Software Entwickler Internations Beitragsarchiv 0 09.07.2008 09:20
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Design Beitragsarchiv 26 04.06.2005 20:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum