2010-11-07 3 views
1

Я хотел бы использовать код, как это в моем Zend Framework проекта:Zend_Framework - Класс именования

public function indexAction() { 
    $user = new User(); 
    $user->name = "Guest"; 
    $user->save(); 
} 

Главное, что важно для меня является то, что класс называется просто User и не App_Model_User, но как я мог управлять этим? я думал, что я мог бы добавить путь к файлу User.php в модели-папке в include_path:

<?php 
class User { 
    /* Some code */ 
} 

Но как я мог конфиг автозагрузчика чтобы загрузить файл/класс? В настоящее время я использую автозагрузчик с appnamespace («App») для загрузки классов с именем App_Model_User, который работает, но имена классов не так, как я думаю. Он должен быть более чистым и понятным.

ответ

2

Я использую set_include_path следующим образом:

$root = dirname(dirname(__FILE__)); 

set_include_path(
    $root . '/application' . PATH_SEPARATOR 
    . $root . '/library' . PATH_SEPARATOR 
    . $root . '/application/models' . PATH_SEPARATOR 
    . $root . get_include_path() 
); 

Тогда автозагрузчик подхватывает любые модели (с любым именем), которые я положил в/приложение/модели. Вышеприведенное в моем единственном публичном скрипте (index.php). Это, как я настраивал автозагрузчик:

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

Вторая линия будет гарантировать, что ваши модели не должны быть явно включены. См:

http://framework.zend.com/manual/en/zend.loader.autoloader.html

+0

Я пробовал то же самое, но тогда мне нужно написать 'require 'User.php', что он работает, но как я могу настроить автозагрузчик Zend Framework, чтобы сделать это автоматически? PS: Поскольку PHP 5.3, 'dirname (__ FILE __)' можно заменить на '__DIR__' – Poru

+0

@Poru - см. Мое редактирование, я надеюсь, что это решает. – karim79

+0

Только что нашел это решение, а затем я увидел ваше редактирование, но спасибо в любом случае;)! Теперь это работает! – Poru

0

Что ваша версия PHP? Вы можете использовать пространства имен.

+0

Система DEV:> 5.3, но мой сервер имеет 5.2.x :( – Poru

Смежные вопросы