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 Thema bewerten
Alt 18.06.2010, 10:23  
Erfahrener Benutzer
 
Benutzerbild von boolean
 
Registriert seit: 06.10.2008
Beiträge: 257
PHP-Kenntnisse:
Fortgeschritten
boolean ist zur Zeit noch ein unbeschriebenes Blatt
boolean eine Nachricht über Skype™ schicken
Standard Planung PHP 5.3 Projekt

Hallo Community,

dieses Thema ist einerseits zum verstehen und andererseits zum Lösen meines Problems gedacht.
Mit PHP 5.3 wurden Namespaces eingeführt - wie natürlich jeder weis. Das Problem dabei gilt allerdings meiner Bibliothek. Hierfür stelle ich einmal kurz die Ordnerstruktur vor:

Zitat:
app/
lib/
res/
pub/
Alle Ordner dienen der Applikation und werden durch /pub/index.php aufgebaut. Durch eine .htaccess wird ähnlich wie bei Zend jeder Request auf die index.php gesteuert.

Jetzt sollte natürlich die Bibliothek, die sich um die Applikation kümmert und der Bibliothek, die sich um die Businesslogik kümmert getrennt werden. Das ganze ist derzeit so aufgebaut:

Zitat:
lib/TofFw
lib/My
Im Folder TofFw, werden die Applikationsdateien abgelegt. Im anderen die Businesslogik Dateien.

Natürlich haben beide eigene Namensräume - so erhält bspw. TofFw den Namensraum TofFw und My natürlich selbsterklärenderweise My.

Grundsätzlich möchte ich also mehrere Bibliotheken wie bei den alten Projekten eben auch (< PHP 5.3). Das ganze ist sogesehen durch die Autoload-Methoden kein Problem (so dachte ich zumindest). Jetzt allerdings nach ein paar praktischen Anwendungen kommt folgendes Problem:

Natürlich möchte ich, wenn ich schon Namensräume verwende auch keine ewige Klassennamen mit den direkten Namensräumen angeben. Das bedeutet, dass ich am Anfang der Klasse mit use arbeite. Also bspw.:

PHP-Code:
use TofFwX;
use 
TofFwA;

$a = new A();
$x = new X(); 
Grundsätzlich scheint es hier kein Problem zu geben, da beide Klassen im selben Namensraum liegen und der Autoloader folgende Daten bekommen würde:

Zitat:
A
X
Hier kann ich natürlich einfach die jeweiligen Dateien includieren. Das Problem gibt es allerdings im folgenden Fall:

PHP-Code:
use TofFwX;
use 
TofFwAppA;

$a = new A();
$x = new X(); 
Jetzt erhält der Autoloader A und X, da beide Namespaces natürlich direkt angegeben werden.

Sogesehen wäre das ganze kein Problem - denn dafür war ja laut dem PHP Manual die Globale Konstante __NAMESPACE__ vorgesehen. Jetzt allerdings folgendes Problem: Namespace enthält immer den letzten use. Das heißt also in meinem Fall TofFw\App.

Da aber X nun nicht im Namensraum TofFw\App liegt, kann ich nicht der einfacher halt halber \ durch / ersetzten und die Datei laden.

Das Problem ist offensichtlich: Gibt es eine Lösung, die meinem Problem weiterhilft oder liege ich mit meiner Anwendung von Namespace komplett Falsch.

Aber wenn ich das ganze richtig verstehe wäre es so der beste Weg mehrere Bibliotheken inkl. Namensräume zu benutzen...
__________________
true||false - www.trueorfalse.de - Rund um Software Entwicklung
boolean ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.06.2010, 21:28  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hi,

ich habe den Post nun 2x gelesen und verstehe nich ganz, wo dein Problem liegt. Du kannst du Namespaces in beliebiger Tiefe (siehe PHP: Declaring sub-namespaces - Manual) definieren und entsprechend verwenden. Deine Applikation wird natürlicherweise auch mehrere Hierarchien von Namespaces haben (z.B. für die drei Schichten einer Anwendung).
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. 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
[S] PHP-Entwickler / Entwickeler für Open Source Projekt _dnl__ Sonstige 1 28.05.2010 17:04
Suche Mitarbeiter für soziales Projekt Costaaar Sonstige 0 11.04.2010 19:13
Programmierer für Projekt gesucht bsdes Sonstige 0 21.03.2010 16:18
[Erledigt] [SUCHE] Webdesigner/Programmierer als Partner für Projekt Rich Beitragsarchiv 0 10.01.2010 16:54
[Erledigt] PHP Projekt mit Zukunft coolbull00 Beitragsarchiv 12 04.05.2009 17:23
PHP Projekt mit Zukunft DawidJan Beitragsarchiv 10 03.05.2009 20:59
Scriptsuche Beteiligung an Projekt gegen Scriptüberarbeitung Maurizio Scriptbörse 0 09.04.2009 06:50
Programmierer für Projekt gesucht thezug Beitragsarchiv 4 26.02.2009 13:43
Lust auf ein Projekt? php/mysql Daniel Markus Beitragsarchiv 0 03.10.2008 14:28
PHP Programmierer und Grafiker für größeres Projekt gesucht Beitragsarchiv 9 11.08.2005 22:56
[Erledigt] -!- Neues Projekt aber Server fehlt... Off-Topic Diskussionen 5 14.09.2004 10:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php software planen, php planung, http://www.php.de/software-design/69014-planung-php-5-3-projekt.html, planung php, software planung php, php projekt planen, php 5.3 projekt, php 5.3, programmplanung und standardplanung, ordnerstruktur projekt, ordnerstruktur neues projekt php planen, php software design projekt planung, php namespace project design, php im projekt planen, softwareentwicklung php planung, php programm planung, php 5.3 einführung, php projekt mit namespace, einfacher halthalber, php projekt 5.3

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:39 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