本文整理汇总了PHP中Doctrine_Core::setExtensionsPath方法的典型用法代码示例。如果您正苦于以下问题:PHP Doctrine_Core::setExtensionsPath方法的具体用法?PHP Doctrine_Core::setExtensionsPath怎么用?PHP Doctrine_Core::setExtensionsPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine_Core
的用法示例。
在下文中一共展示了Doctrine_Core::setExtensionsPath方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: prepareTables
public function prepareTables()
{
Doctrine_Core::setExtensionsPath(dirname(__FILE__) . '/Extension');
spl_autoload_register(array('Doctrine', 'extensionsAutoload'));
Doctrine_Manager::getInstance()->registerExtension('TestExtension');
$this->tables[] = 'ExtensionBehaviorTest';
parent::prepareTables();
}
示例2: registerDoctrine
public static function registerDoctrine()
{
if (self::$doctrineLoaded) {
return;
}
$settings = sgConfiguration::get('settings.DoctrinePlugin');
Doctrine_Core::setExtensionsPath(self::getPath('extensions'));
Doctrine_Core::setModelsDirectory(self::getPath('models'));
$manager = Doctrine_Manager::getInstance();
$manager->openConnection($settings['dsn'], 'doctrine');
if (isset($settings['attributes'])) {
foreach ($settings['attributes'] as $attribute => $value) {
$manager->setAttribute($attribute, $value);
}
}
self::$doctrineLoaded = true;
}
示例3: getDoctrine
public function getDoctrine()
{
if (null === $this->_doctrine) {
try {
// Get Doctrine configuration options from the application.ini file
$doctrineConfig = $this->getOptions();
require_once 'Doctrine.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->pushAutoloader(array('Doctrine', 'autoload'));
$loader->pushAutoloader(array('Doctrine', 'modelsAutoload'));
$manager = Doctrine_Manager::getInstance();
if (isset($doctrineConfig['extensions_path']) && isset($doctrineConfig['extensions']) && is_array($doctrineConfig['extensions'])) {
Doctrine_Core::setExtensionsPath($doctrineConfig['extensions_path']);
$loader->pushAutoloader(array('Doctrine', 'extensionsAutoload'));
foreach ($doctrineConfig['extensions'] as $e) {
$manager->registerExtension($e);
}
}
$manager->setAttribute(Doctrine::ATTR_MODEL_LOADING, Doctrine::MODEL_LOADING_CONSERVATIVE);
$manager->setAttribute(Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true);
$manager->setAttribute(Doctrine::ATTR_USE_DQL_CALLBACKS, true);
$manager->setCollate('utf8_unicode_ci');
$manager->setCharset('utf8');
Doctrine::loadModels($doctrineConfig['models_path']);
$manager->openConnection($doctrineConfig['connection_string']);
$manager->connection()->setCollate('utf8_unicode_ci');
$manager->connection()->setCharset('utf8');
$this->_doctrine = $manager;
} catch (Exception $e) {
echo "<html><body><pre>\nERROR: Your Doctrine set-up is not working.\n\n";
echo $e->getMessage() . "\n\n";
echo $e->getTraceAsString();
echo "</pre></body></html>";
die;
}
}
return $this->_doctrine;
}
示例4: getDoctrine
/**
* Get doctrine
*
* @return Doctrine_Manager
*/
public function getDoctrine()
{
if (null === $this->_doctrine) {
// Get Doctrine configuration options from the application.ini file
$doctrineConfig = $this->getOptions();
/**
* @see Doctrine
*/
require_once 'Doctrine.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->pushAutoloader(array('Doctrine', 'autoload'));
$loader->pushAutoloader(array('Doctrine', 'modelsAutoload'));
$manager = Doctrine_Manager::getInstance();
if (isset($doctrineConfig['extensions_path']) && is_array($doctrineConfig['extensions'])) {
Doctrine_Core::setExtensionsPath($doctrineConfig['extensions_path']);
$loader->pushAutoloader(array('Doctrine', 'extensionsAutoload'));
foreach ($doctrineConfig['extensions'] as $e) {
$manager->registerExtension($e);
}
}
$manager->setAttribute(Doctrine::ATTR_MODEL_LOADING, Doctrine::MODEL_LOADING_CONSERVATIVE);
$manager->setAttribute(Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true);
$manager->setAttribute(Doctrine::ATTR_USE_DQL_CALLBACKS, true);
$manager->setCollate('utf8_unicode_ci');
$manager->setCharset('utf8');
Doctrine::loadModels($doctrineConfig['models_path']);
$db_profiler = new Doctrine_Connection_Profiler();
$manager->openConnection($doctrineConfig['connection_string']);
$manager->connection()->setListener($db_profiler);
$manager->connection()->setCollate('utf8_unicode_ci');
$manager->connection()->setCharset('utf8');
Zend_Registry::set('db_profiler', $db_profiler);
$this->_doctrine = $manager;
}
return $this->_doctrine;
}
示例5: define
* Doctrine Configuration File
*
* This is a sample implementation of Doctrine
*
* @package Doctrine
* @subpackage Config
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @link www.phpdoctrine.org
* @since 1.0
* @version $Revision: 2753 $
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
* @author Jonathan H. Wage <jwage@mac.com>
*/
define('SANDBOX_PATH', dirname(__FILE__));
define('DOCTRINE_PATH', dirname(dirname(SANDBOX_PATH)) . DIRECTORY_SEPARATOR . 'lib');
define('DATA_FIXTURES_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'fixtures');
define('MODELS_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR . 'models');
define('MIGRATIONS_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR . 'migrations');
define('SQL_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'sql');
define('YAML_SCHEMA_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR . 'schema');
define('DB_PATH', SANDBOX_PATH . DIRECTORY_SEPARATOR . 'sandbox.db');
define('DSN', 'sqlite:///' . DB_PATH);
require_once DOCTRINE_PATH . DIRECTORY_SEPARATOR . 'Doctrine.php';
Doctrine_Core::setExtensionsPath(dirname(__FILE__) . '/extensions');
spl_autoload_register(array('Doctrine', 'autoload'));
spl_autoload_register(array('Doctrine', 'modelsAutoload'));
spl_autoload_register(array('Doctrine', 'extensionsAutoload'));
$manager = Doctrine_Manager::getInstance();
$manager->openConnection(DSN, 'doctrine');
$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING, Doctrine_Core::MODEL_LOADING_PEAR);
Doctrine_Core::setModelsDirectory('models');
示例6: initialize
//.........这里部分代码省略.........
}
$is12 = version_compare(Doctrine::VERSION, '1.2', '>=');
// in any case, it's loaded now. maybe we need to register the autoloading stuff for it!
// we need this list further down
$splAutoloadFunctions = spl_autoload_functions();
if (!in_array(array('Doctrine', 'autoload'), $splAutoloadFunctions) && !in_array(array('Doctrine_Core', 'autoload'), $splAutoloadFunctions)) {
// we do
spl_autoload_register(array('Doctrine', 'autoload'));
}
// cool. Assign the Doctrine Manager instance
$this->doctrineManager = Doctrine_Manager::getInstance();
// now we're in business. we will set up connections right away, as Doctrine is handling the lazy-connecting stuff for us.
// that way, you can just start using classes in your code
try {
$dsn = $this->getParameter('dsn');
if ($dsn === null) {
// missing required dsn parameter
$error = 'Database configuration specifies method "dsn", but is missing dsn parameter';
throw new AgaviDatabaseException($error);
}
$this->connection = $this->doctrineManager->openConnection($dsn, $name);
// do not assign the resource here. that would connect to the database
// $this->resource = $this->connection->getDbh();
// set our event listener that, on connect, sets the configured charset and runs init queries
$this->connection->setListener(new AgaviDoctrineDatabaseEventListener($this));
$this->connection->setPrefix($this->getParameter('prefix', ""));
// set the context instance as a connection parameter
$this->connection->setParam('context', $databaseManager->getContext(), 'org.agavi');
// date format
if ($this->hasParameter('date_format')) {
$this->connection->setDateFormat($this->getParameter('date_format'));
}
// options
foreach ((array) $this->getParameter('options') as $optionName => $optionValue) {
$this->connection->setOption($optionName, $optionValue);
}
foreach (array('manager_attributes' => $this->doctrineManager, 'attributes' => $this->connection) as $attributesKey => $attributesDestination) {
foreach ((array) $this->getParameter($attributesKey, array()) as $attributeName => $attributeValue) {
if ($is12) {
if (!strpos($attributeName, '::')) {
throw new AgaviDatabaseException(sprintf('For Doctrine 1.2 and newer, attribute names (and, if desired to be resolved against a constant, values) must be fully qualified, e.g. "Doctrine_Core::ATTR_VALIDATE" and "Doctrine_Core::VALIDATE_NONE". Given attribute with name "%s" in collection "%s" does not match this condition.', $attributeName, $attributesKey));
}
if (!defined($attributeName)) {
throw new AgaviDatabaseException(sprintf('Unknown Attribute "%s"', $attributeName));
}
}
// resolve from constant if possible
if (strpos($attributeName, '::') && defined($attributeName)) {
$attributeName = constant($attributeName);
}
// resolve from constant if possible
if (strpos($attributeValue, '::') && defined($attributeValue)) {
$attributeValue = constant($attributeValue);
} elseif (ctype_digit($attributeValue)) {
$attributeValue = (int) $attributeValue;
}
$attributesDestination->setAttribute($attributeName, $attributeValue);
}
}
foreach ((array) $this->getParameter('impls', array()) as $templateName => $className) {
$this->connection->setImpl($templateName, $className);
}
foreach ((array) $this->getParameter('manager_impls', array()) as $templateName => $className) {
$this->doctrineManager->setImpl($templateName, $className);
}
// load models (that'll just work with empty values too)
Doctrine::loadModels($this->getParameter('load_models'));
// for 1.2, handle model autoloading and base paths
if ($is12 && ($this->hasParameter('load_models') || $this->hasParameter('models_directory'))) {
if (!in_array(array('Doctrine', 'modelsAutoload'), $splAutoloadFunctions) && !in_array(array('Doctrine_Core', 'modelsAutoload'), $splAutoloadFunctions)) {
spl_autoload_register(array('Doctrine_Core', 'modelsAutoload'));
}
if ($this->hasParameter('models_directory')) {
Doctrine_Core::setModelsDirectory($this->getParameter('models_directory'));
}
}
// for 1.2, handle extension autoloading, base paths and registration
if ($is12 && ($this->hasParameter('extensions_path') || $this->hasParameter('register_extensions'))) {
if (!in_array(array('Doctrine', 'extensionsAutoload'), $splAutoloadFunctions) && !in_array(array('Doctrine_Core', 'extensionsAutoload'), $splAutoloadFunctions)) {
spl_autoload_register(array('Doctrine_Core', 'extensionsAutoload'));
}
if ($this->hasParameter('extensions_path')) {
Doctrine_Core::setExtensionsPath($this->getParameter('extensions_path'));
}
foreach ((array) $this->getParameter('register_extensions', array()) as $extensionName) {
if (is_array($extensionName)) {
call_user_func_array(array($this->doctrineManager, 'registerExtension'), $extensionName);
} else {
$this->doctrineManager->registerExtension($extensionName);
}
}
}
foreach ((array) $this->getParameter('bind_components', array()) as $componentName) {
$this->doctrineManager->bindComponent($componentName, $name);
}
} catch (Doctrine_Exception $e) {
// the connection's foobar'd
throw new AgaviDatabaseException($e->getMessage());
}
}