Нужно ли взламывать ZendFramework1.10.8 / Doctrine1.2.2 для генерации модели? - PullRequest
2 голосов
/ 19 сентября 2010

Я начал читать на Zend Framework, и он используется с Doctrine, и реализовал небольшой проект для понимания. Я пришел к моменту, когда мне потребовалось сгенерировать мою модель, как при наличии сценария создания, подобного предложенному.в руководстве по Doctrine 1.2.2 pdf. После нескольких неудачных попыток, таких как

Класс 'sfYaml' не найден в G: \ php_document \ zendworkspace \ BookingManager \ library \ doctrine \ Doctrine \ Parser \ Yml.php вline 80

Я гуглил и узнал, что люди делают по этому поводу.
Мне кажется, слишком много факта наличия сценария командной строки для этой работы. Так что мой вопросдействительно ли мне нужна командная строка или я не могу загрузить что-то, это мой файл application.ini, чтобы получить ошибку там?
мой testerController выглядит так:

class Testing_TesterController extends Zend_Controller_Action {

public function init(){
    $optionDoctrine = Zend_Registry::get("config")->toArray();
    $this->config = $optionDoctrine["doctrine"];
}


public function generateAction() {
    $this->view->drop="dropping database............";
    Doctrine_Core::dropDatabases();
    $this->view->create = "creating database........";
    Doctrine_Core::createDatabases();
    $this->view->models = "generating models....";
    //things started breadking from this line  Doctrine_Core::generateModelsFromYaml("$this->config[yaml_schema_path]","$this->config[models_path]");
//      $this->view->tables = "creating tables.......";
//          Doctrine_Core::createTablesFromModels($this->config["models_path"]);        
//      $this->view->success = "tables and model successfully generated";
//      $optionobject= Zend_Registry::get("config")->toArray();
//      $this->view->generate =$optionobject["doctrine"]["yaml_schema_path"];

}

 public function testAction(){

$dbs= Doctrine_Manager::connection()->import->listDatabases();
 $this->view->test = $dbs;
     //$this->view->test = "test";
 }
}

генерируемый вид похож наэто

<h1>My Manager:: generate page</h1><br>
<div style="text-align: left"><?php echo $this->drop; ?></div>
<div style="text-align: left"><?php echo $this->create; ?></div>
<div style="text-align: left"><?php var_dump($this->models); ?></div>
<div style="text-align: left"><?php echo $this->tables; ?></div>

вот мой класс начальной загрузки

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
   protected function _initDoctrine(){
    require_once 'doctrine/Doctrine.php';


      $this->getApplication()->getAutoloader()->pushAutoloader(array('Doctrine','autoload'),"Doctrine");
 //$this->getApplication()->getAutoloader()->pushAutoloader(array('Doctrine','modelsAutoload'),"Doctrine");

    $manager = Doctrine_Manager::getInstance();
 //$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING,Doctrine_Core::MODEL_LOADING_AGGRESSIVE);
    $manager->setAttribute(Doctrine_Core::ATTR_AUTO_ACCESSOR_OVERRIDE,true);

    $doctrineConfig = $this->getOption('doctrine');

    $conn = Doctrine_Manager::connection($doctrineConfig['dsn'],'doctrine');

    return $conn;


}

protected function _initDoctrineConfig(){

    $conf = new Zend_Config($this->getOptions(),true);
    Zend_Registry::set('config',$conf);
    return $conf;
}


}

Я также принял использование модулей, которые, кажется, усложняют мою ситуацию, так чтоВы думаете, что лучше всего пойти с?спасибо за чтение

1 Ответ

1 голос
/ 19 сентября 2010

Вам нужно взять компонент sfYaml и установить его. Я думал, что это был репозиторий Doctrine svn как svn:external, но, возможно, нет ... вы можете получить его с сайта компоненты Symfony .

Я не уверен, какой учебник вы читаете, но если вы уроните:

http://svn.symfony-project.com/components/yaml/branches/1.0/

в вашу папку library как sfYaml и добавьте library/sfYaml к пути включения, с вами все будет в порядке, если вы все правильно настроили.

Кроме того, почему ваш сценарий командной строки использует материал Zend_Controller? Разве вы не должны использовать инфраструктуру Zend_Tool_Framework или писать полностью собственный скрипт? Так вот как я это делал в прошлом ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...