class – Блог Stafox'a https://stafox.cc О программировании и веб-разработке Wed, 30 Jan 2013 05:51:25 +0000 en-US hourly 1 https://wordpress.org/?v=5.8.2 Zend Framework: где хранить свои классы? https://stafox.cc/zend-framework-gde-hranit-svoi-klassyi/ https://stafox.cc/zend-framework-gde-hranit-svoi-klassyi/#comments Sat, 12 Jan 2013 12:50:44 +0000 http://stafox.ru/?p=1734 При разработке своего веб-приложения, Вам наверняка приходилось использовать свои классы. И Вы, скорее всего, уже задавались вопросом “Где же их хранить?”, ну а если это и не так, то в ближайшее время Вас наверняка постигнет этот вопрос. Можно их конечно положить в controllers и все будет работать, но это как-то не эстетично. Рыба должна лежать

Сообщение Zend Framework: где хранить свои классы? появились сначала на Блог Stafox'a.

]]>
Zend Framework
При разработке своего веб-приложения, Вам наверняка приходилось использовать свои классы. И Вы, скорее всего, уже задавались вопросом “Где же их хранить?”, ну а если это и не так, то в ближайшее время Вас наверняка постигнет этот вопрос. Можно их конечно положить в controllers и все будет работать, но это как-то не эстетично. Рыба должна лежать отдельно от мяса 🙂

Поэтому я решил хранить их в отдельной директории classes. Ну а для того, чтобы Zend Framework самостоятельно подгрузил наши классы, нужно добавить в Bootstrap.php следующий код.
[php] protected function _initAutoload() {
$this->bootstrap("frontController");
$front = $this->frontController;

$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);

$modules = $front->getControllerDirectory();
$default = $front->getDefaultModule();

foreach (array_keys($modules) as $module) {
if ($module === $default) {
continue;
}
}
$autoloader->pushAutoloader(new Zend_Application_Module_Autoloader(array(
"namespace" => ucwords($module),
"basePath" => $front->getModuleDirectory($module),
)));
$loader = new Zend_Loader_Autoloader_Resource(array(
‘namespace’ => ”,
‘basePath’ => $front->getModuleDirectory($module),
));
$loader->addResourceType(‘classes_type’, ‘classes’, $module.’_Class’);
return $autoloader;
}
[/php]

Хочу обратить ваше внимание на строку
[php]$loader->addResourceType(‘classes_type’, ‘classes’, $module.’_Class’);[/php] Первый аргумент указывает тип Ваших классов.
Второй аргумент – имя директории, в которой они будут располагаться.
Третий – префикс имени класса.

Таким образом Вы подгрузите все классы для текущего модуля.
Ну и небольшой пример класса:
[php title=”application/modules/default/classes/Geo.php”] <?php
class Default_Class_Geo
{
private $radius;
private $coordinatesType;

public function __construct() {
//…
}
public function convertCoordinates($point, $from, $to) {
//…
}
}
[/php]

Если Вам нужна уникальная программа программа под ваши нужды, Вы можете заказать программу у профессионалов, эти ребята знают свое дело: сделают все качественно и в кратчайшие строки.

Сообщение Zend Framework: где хранить свои классы? появились сначала на Блог Stafox'a.

]]>
https://stafox.cc/zend-framework-gde-hranit-svoi-klassyi/feed/ 4