Как вы генерируете модели модулей в ZF и Doctrine? - PullRequest
0 голосов
/ 19 ноября 2010

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

У меня есть настройка ZF Structure для модулей. У меня есть модуль блога и игровой модуль. Я хотел бы, чтобы обе эти системы были независимы друг от друга, но совместно использовали одни и те же общие модули, такие как учетные записи пользователей, они были бы размещены в отдельных базах данных IE Blog Database и Game Database и Core database. Итак, моя структура будет выглядеть так:

ZF /
 - applications /
   - configs
   - controllers
   - models
      User.php
   - modules
     - blog
       - controllers
       - models
          Blog.php
       - views
     - games
       - controllers
       - models
          Games.php
       - views
   - views

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

Спасибо.

1 Ответ

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

AFAIK, вы не можете сгенерировать их по-своему :(, извините за это. Я столкнулся с той же проблемой однажды, и я думаю, что лучшее решение - это сгенерировать Модели из папки приложения и поместить их в папку Библиотеки.таким образом, структура будет

ZF /
 - applications /
   - configs
   - controllers
   - models
   - modules
     - blog
       - controllers
       - models
       - views
     - games
       - controllers
       - models
       - views
   - views
 -library/
   -your_custom_namespace 
        -Model
          User.php
          Blog.php
          Games.php

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

внизумоя доктрина кли

<?php
echo "Hello Tawfek ! , Howdy ?? \n";
/**
 * Doctrine CLI
 */
error_reporting(E_ALL);
define('ROOT_PATH', realpath(dirname(__FILE__)));
define('APPLICATION_PATH', realpath(dirname(__FILE__) . "/../"));
define('APPLICATION_ENV', 'development');
//Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    '../library',get_include_path(), "/home/Sites/site/library/" )));
/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);

// Read in the application.ini bootstrap for Doctrine
$application->getBootstrap()->bootstrap('doctrine');

// Create the configuration array
$config = $application->getOption('doctrine');
// (Note you can have all of these in application.ini aswell)
$config['generate_models_options'] = array(
    // Define the PHPDoc Block in the generated classes
    'phpDocPackage'         =>'site',
    'phpDocSubpackage'      =>'Models',
    'phpDocName'            =>'Your Name Goes here',
    'phpDocEmail'           =>'Your Email',
    'phpDocVersion'         =>'1.0',
    // Define whats what and named how, where.
    'suffix'                => '.php',
    'pearStyle'             => true,
    'baseClassPrefix'       => 'Base_',
    // Unless you have created a custom class or want Default_Model_Base_Abstract
    'baseClassName'         => 'Doctrine_Record',
    // Leave this empty as specifying 'Base' will create Base/Base
    'baseClassesDirectory'  => NULL,
    // Should make it Zend Framework friendly AFAIK
    'classPrefix'           => 'Dagho_Model_',
    'classPrefixFiles'      => false,
    'generateBaseClasses'   => true,
    'generateTableClasses'  => false,
    'packagesPath'          =>  APPLICATION_PATH "/../library/Dagho/Model" ,
    'packagesFolderName'    => 'packages',

);

$cli = new Doctrine_Cli($config);
$cli->run($_SERVER['argv']);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...