|
|
Въпросът ми е следния... Имам няколко класа (опростил съм доста нещата, за прегледност) :
class PHPASPSMSAdapter {
}
class SMSProvider {
public static function getProvider() {
return 'PHPASPSMSAdapter';
}
}
$provider = SMSProvider::getProvider();
$sms = new SMS(new $provider);
$sms->sendSMS();
това работи коректно...
въпросът е как (и изобщо възможно ли е) да се избегне тази междинна променлива $provider...
__________________________________
Пътят към ада е осеян с добри намерения
| |
|
мисля, че спокойно можеш да го направиш
...
само че си направи хубаво Factory pattern-а (да ти връща обект, а не стринг с име на обекта, който да създадеш), ако това се опитваш да направиш
| |
|
мерси за препоръката...
въпроса е принципен, не става дума за съществуващо приложение, просто проектирайки приложението и знаейки, че може да се създаде обект от клас указан чрез променлива реших да пробвам да го създам като използвам стринга върнат от статичния метод... директно, без помощната променлива $provider... но не успях... и все още ме съм сигурен дали може.
а за patterns... по-горе съм добавил префикс Adaptor, но в реализацията не се придържам към този pattern... просто в случая не мисля, че е удачен (поне не точно този pattern)...
в момента го препроектирам, щото се появиха нови неща (да го кажем refactoring)... така че, още не съм решил как точно ще реализирам обектния модел
__________________________________
Пътят към ада е осеян с добри намерения
| |
|
Не може. Като гледам граматиката в zend_language_parser.y поне на пръв поглед изглежда, че не може да комбинираш new с по-сложни изрази.
| |
Тема
|
По-точно
[re: Penguin]
|
|
Автор | Penguin (Нерегистриран) |
Публикувано | 23.02.05 18:05 |
|
Само "string" и $variable приема, като променливата може и да е мембър на обект или индиректна $$variable. Но на практика това е всичко което може да подадеш.
| |
|
благодаря за информацията... точно това ме интересуваше
__________________________________
Пътят към ада е осеян с добри намерения
| |
|
|
|
|