/**
  * @see sfPluginConfiguration
  */
 public function initialize()
 {
     sfConfig::set('sf_orm', 'propel');
     if (!sfConfig::get('sf_admin_module_web_dir')) {
         sfConfig::set('sf_admin_module_web_dir', '/sfPropelPlugin');
     }
     sfToolkit::addIncludePath(array(sfConfig::get('sf_root_dir'), sfConfig::get('sf_propel_runtime_path', realpath(dirname(__FILE__) . '/../lib/vendor'))));
     require_once 'propel/Propel.php';
     if (!Propel::isInit()) {
         if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) {
             Propel::setLogger(new sfPropelLogger($this->dispatcher));
         }
         $propelConfiguration = new PropelConfiguration();
         Propel::setConfiguration($propelConfiguration);
         $this->dispatcher->notify(new sfEvent($propelConfiguration, 'propel.configure'));
         Propel::initialize();
     }
     $this->dispatcher->connect('user.change_culture', array('sfPropel', 'listenToChangeCultureEvent'));
     if (sfConfig::get('sf_web_debug')) {
         $this->dispatcher->connect('debug.web.load_panels', array('sfWebDebugPanelPropel', 'listenToAddPanelEvent'));
     }
     if (sfConfig::get('sf_test')) {
         $this->dispatcher->connect('context.load_factories', array($this, 'clearAllInstancePools'));
     }
 }
 /**
  * @param string $name
  * @return PDO
  */
 public static function getConnection($name)
 {
     if (!Propel::isInit()) {
         DbManager::setConfig(kConf::getDB());
         DbManager::initialize();
     }
     return Propel::getConnection($name);
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 public function boot()
 {
     require_once $this->container->getParameter('propel.path') . '/runtime/lib/Propel.php';
     if (0 === strncasecmp(PHP_SAPI, 'cli', 3)) {
         set_include_path($this->container->getParameter('propel.phing_path') . '/classes' . PATH_SEPARATOR . get_include_path());
     }
     if (!\Propel::isInit()) {
         \Propel::setConfiguration($this->container->get('propel.configuration'));
         if ($this->container->getParameter('propel.logging')) {
             $this->container->get('propel.configuration')->setParameter('debugpdo.logging.details', array('time' => array('enabled' => true), 'mem' => array('enabled' => true)));
             \Propel::setLogger($this->container->get('propel.logger'));
         }
         \Propel::initialize();
     }
 }
 protected function setUp()
 {
     if (Propel::isInit()) {
         $this->oldPropelConfiguration = Propel::getConfiguration();
     }
     $xmlDom = new DOMDocument();
     $xmlDom->load(dirname(__FILE__) . '/../../fixtures/reverse/mysql/runtime-conf.xml');
     $xml = simplexml_load_string($xmlDom->saveXML());
     $phpconf = PlatformDatabaseBuildTimeBaseTask::simpleXmlToArray($xml);
     Propel::setConfiguration($phpconf);
     Propel::initialize();
     $this->con = Propel::getConnection('reverse-bookstore');
     $this->parser = new MysqlSchemaParser(Propel::getConnection('reverse-bookstore'));
     $this->parser->setGeneratorConfig(new QuickGeneratorConfig(new MysqlPlatform()));
     parent::setUp();
 }
Example #5
0
 /**
  * @param string $name
  * @return PDO
  */
 public static function getConnection($name)
 {
     if (!Propel::isInit()) {
         DbManager::setConfig(kConf::getDB());
         DbManager::initialize();
     }
     $slaves = array(self::DB_HELPER_CONN_PROPEL2, self::DB_HELPER_CONN_PROPEL3);
     if (!in_array($name, $slaves)) {
         return Propel::getConnection($name);
     }
     list($connection, $connIndex) = DbManager::connectFallbackLogic(array('Propel', 'getConnection'), array(), $slaves);
     if (!$connection) {
         throw new PropelException('Could not connect to any database server');
     }
     return $connection;
 }
 /**
  * {@inheritdoc}
  */
 public function boot()
 {
     require_once $this->container->getParameter('propel.path') . '/runtime/lib/Propel.php';
     if (0 === strncasecmp(PHP_SAPI, 'cli', 3)) {
         set_include_path($this->container->getParameter('kernel.root_dir') . '/..' . PATH_SEPARATOR . $this->container->getParameter('propel.phing_path') . PATH_SEPARATOR . $this->container->getParameter('propel.phing_path') . '/classes' . PATH_SEPARATOR . get_include_path());
     }
     if (!\Propel::isInit()) {
         \Propel::setConfiguration($this->container->get('propel.configuration'));
         if ($this->container->getParameter('propel.logging')) {
             $config = $this->container->get('propel.configuration');
             $config->setParameter('debugpdo.logging.methods', array('PropelPDO::exec', 'PropelPDO::query', 'PropelPDO::prepare', 'DebugPDOStatement::execute'), false);
             $config->setParameter('debugpdo.logging.details', array('time' => array('enabled' => true), 'mem' => array('enabled' => true), 'connection' => array('enabled' => true)));
             \Propel::setLogger($this->container->get('propel.logger'));
         }
         \Propel::initialize();
     }
 }
Example #7
0
 /**
  * {@inheritdoc}
  */
 public function boot()
 {
     trigger_error("The PropelBundle uses a new branching model, you should switch to the 1.1 branch (1.1.x versions). For more information, please read: https://github.com/propelorm/PropelBundle/wiki", E_USER_DEPRECATED);
     require_once $this->container->getParameter('propel.path') . '/runtime/lib/Propel.php';
     if (0 === strncasecmp(PHP_SAPI, 'cli', 3)) {
         set_include_path($this->container->getParameter('kernel.root_dir') . '/..' . PATH_SEPARATOR . $this->container->getParameter('propel.phing_path') . PATH_SEPARATOR . $this->container->getParameter('propel.phing_path') . '/classes' . PATH_SEPARATOR . get_include_path());
     }
     if (!\Propel::isInit()) {
         \Propel::setConfiguration($this->container->get('propel.configuration'));
         if ($this->container->getParameter('propel.logging')) {
             $config = $this->container->get('propel.configuration');
             $config->setParameter('debugpdo.logging.methods', array('PropelPDO::exec', 'PropelPDO::query', 'PropelPDO::prepare', 'DebugPDOStatement::execute'), false);
             $config->setParameter('debugpdo.logging.details', array('time' => array('enabled' => true), 'mem' => array('enabled' => true), 'connection' => array('enabled' => true)));
             \Propel::setLogger($this->container->get('propel.logger'));
         }
         \Propel::initialize();
     }
 }
Example #8
0
 public function build($dsn = null, $user = null, $pass = null, $adapter = null)
 {
     if (null === $dsn) {
         $dsn = 'sqlite::memory:';
     }
     if (null === $adapter) {
         $adapter = new DBSQLite();
     }
     $con = new PropelPDO($dsn, $user, $pass);
     $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
     $this->buildSQL($con);
     $this->buildClasses();
     $name = $this->getDatabase()->getName();
     if (!Propel::isInit()) {
         Propel::setConfiguration(array());
     }
     Propel::setDB($name, $adapter);
     Propel::setConnection($name, $con, Propel::CONNECTION_READ);
     Propel::setConnection($name, $con, Propel::CONNECTION_WRITE);
     return $con;
 }
Example #9
0
 /**
  * Initialize sfymfony propel
  *
  * @param sfEventDispatcher $dispatcher
  * @param string $culture
  */
 public static function initialize(sfEventDispatcher $dispatcher, $culture = null)
 {
     if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) {
         // add propel logger
         Propel::setLogger(new sfPropelLogger($dispatcher));
     }
     // propel initialization
     $configuration = sfPropelDatabase::getConfiguration();
     if ($configuration) {
         Propel::setConfiguration($configuration);
         if (!Propel::isInit()) {
             Propel::initialize();
         }
     }
     $dispatcher->connect('user.change_culture', array('sfPropel', 'listenToChangeCultureEvent'));
     if (!is_null($culture)) {
         self::setDefaultCulture($culture);
     } else {
         if (class_exists('sfContext', false) && sfContext::hasInstance() && ($user = sfContext::getInstance()->getUser())) {
             self::setDefaultCulture($user->getCulture());
         }
     }
     self::$initialized = true;
 }
Example #10
0
 /**
  * Initializes sfPropelDatabase by loading configuration and initializing Propel
  *
  * @param array $parameters The datasource parameters
  * @param string $name The datasource name
  *
  * @return void
  */
 public function initialize($parameters = null, $name = 'propel')
 {
     parent::initialize($parameters);
     if (!$this->hasParameter('datasource') && $this->hasParameter('name')) {
         $this->setParameter('datasource', $this->getParameter('name'));
     } elseif (!$this->hasParameter('datasource') && !empty($name)) {
         $this->setParameter('datasource', $name);
     }
     $this->addConfig();
     $is_default = $this->getParameter('is_default', false);
     // first defined if none listed as default
     if ($is_default || 1 == count(self::$config['propel']['datasources'])) {
         $this->setDefaultConfig();
     }
     Propel::setConfiguration(self::$config[$name]);
     if ($this->getParameter('pooling', false)) {
         Propel::enableInstancePooling();
     } else {
         Propel::disableInstancePooling();
     }
     if (!Propel::isInit()) {
         Propel::initialize();
     }
 }
Example #11
0
 /**
  * initialize Propel
  * @return     void
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function initialize()
 {
     if (self::$configuration === null) {
         throw new PropelException("Propel cannot be initialized without " . "a valid configuration. Please check the log files " . "for further details.");
     }
     self::configureLogging();
     // Now that we have dealt with processing the log properties
     // that may be contained in the configuration we will make the
     // configuration consist only of the remaining propel-specific
     // properties that are contained in the configuration. First
     // look for properties that are in the "propel" namespace.
     $originalConf = self::$configuration;
     self::$configuration = isset(self::$configuration['propel']) ? self::$configuration['propel'] : null;
     if (empty(self::$configuration)) {
         // Assume the original configuration already had any
         // prefixes stripped.
         self::$configuration = $originalConf;
     }
     // reset the connection map (this should enable runtime changes of connection params)
     self::$connectionMap = array();
     self::initAdapters(self::$configuration);
     self::$isInit = true;
     // map builders may be registered w/ Propel before Propel has
     // been initialized; in this case they are stored in a static
     // var of this class & now can be propertly initialized.
     foreach (self::$mapBuilders as $mbClass) {
         BasePeer::getMapBuilder($mbClass);
     }
     // now that the pre-loaded map builders have been propertly initialized
     // empty the array.
     // any further mapBuilders will be build by the generated MapBuilder classes.
     self::$mapBuilders = array();
 }
 /**
  * Load Propel config
  * 
  * @param      AgaviDatabaseManager The database manager of this instance.
  * @param      array                An assoc array of initialization params.
  *
  * @author     David Zülke <*****@*****.**>
  * @since      0.10.0
  */
 public function initialize(AgaviDatabaseManager $databaseManager, array $parameters = array())
 {
     parent::initialize($databaseManager, $parameters);
     $configPath = AgaviToolkit::expandDirectives($this->getParameter('config'));
     $datasource = $this->getParameter('datasource', null);
     $use_as_default = $this->getParameter('use_as_default', false);
     $config = (require $configPath);
     if ($datasource === null || $datasource == 'default') {
         if (isset($config['propel']['datasources']['default'])) {
             $datasource = $config['propel']['datasources']['default'];
         } elseif (isset($config['datasources']['default'])) {
             $datasource = $config['datasources']['default'];
         } else {
             throw new AgaviDatabaseException('No datasource given for Propel connection, and no default datasource specified in runtime configuration file.');
         }
     }
     if (!class_exists('Propel')) {
         include 'propel/Propel.php';
     }
     if (!Propel::isInit()) {
         Propel::init($configPath);
     }
     $is13 = version_compare(Propel::VERSION, '1.4', '<');
     // grab the configuration values and inject possibly defined overrides for this data source
     if ($is13) {
         // old-style config array; PropelConfiguration was added after 1.3.0, http://trac.agavi.org/ticket/1195
         $config = Propel::getConfiguration();
         $config['datasources'][$datasource]['adapter'] = $this->getParameter('overrides[adapter]', $config['datasources'][$datasource]['adapter']);
         $config['datasources'][$datasource]['connection'] = array_merge($config['datasources'][$datasource]['connection'], $this->getParameter('overrides[connection]', array()));
         // also the autoload classes
         $config['datasources'][$datasource]['classes'] = array_merge($config['datasources'][$datasource]['classes'], $this->getParameter('overrides[classes]', array()));
         // and init queries
         if (!isset($config['datasources'][$datasource]['connection']['settings']['queries']['query'])) {
             $config['datasources'][$datasource]['connection']['settings']['queries']['query'] = array();
         }
         // array cast because "query" might be a string if just one init query was given, http://trac.agavi.org/ticket/1194
         $config['datasources'][$datasource]['connection']['settings']['queries']['query'] = array_merge((array) $config['datasources'][$datasource]['connection']['settings']['queries']['query'], (array) $this->getParameter('init_queries'));
         // set the new config
         Propel::setConfiguration($config);
     } else {
         $config = Propel::getConfiguration(PropelConfiguration::TYPE_OBJECT);
         $overrides = (array) $this->getParameter('overrides');
         // set override values
         foreach ($overrides as $key => $value) {
             $config->setParameter($key, $value);
         }
         // handle init queries in a cross-adapter fashion (they all support the "init_queries" param)
         $queries = (array) $config->getParameter('datasources.' . $datasource . '.connection.settings.queries.query', array());
         // yes... it's one array, [connection][settings][queries][query], with all the init queries from the config, so we append to that
         $queries = array_merge($queries, (array) $this->getParameter('init_queries'));
         $config->setParameter('datasources.' . $datasource . '.connection.settings.queries.query', $queries);
     }
     if (true === $this->getParameter('enable_instance_pooling')) {
         Propel::enableInstancePooling();
     } elseif (false === $this->getParameter('enable_instance_pooling')) {
         Propel::disableInstancePooling();
     }
 }
Example #13
0
 /**
  * Initializes Propel
  *
  * @throws PropelException Any exceptions caught during processing will be
  *                             rethrown wrapped into a PropelException.
  */
 public static function initialize()
 {
     if (self::$configuration === null) {
         throw new PropelException("Propel cannot be initialized without a valid configuration. Please check the log files for further details.");
     }
     self::configureLogging();
     // check whether the generated model has the same version as the runtime, see gh-#577
     // we need to check for existance first, because tasks which rely on the runtime.xml conf will not provide a generator_version
     if (isset(self::$configuration['generator_version']) && self::$configuration['generator_version'] != self::VERSION) {
         $warning = "Version mismatch: The generated model was build using propel '" . self::$configuration['generator_version'] . "' while the current runtime is at version '" . self::VERSION . "'";
         if (self::$logger) {
             self::$logger->warning($warning);
         } else {
             trigger_error($warning, E_USER_WARNING);
         }
     }
     // reset the connection map (this should enable runtime changes of connection params)
     self::$connectionMap = array();
     if (isset(self::$configuration['classmap']) && is_array(self::$configuration['classmap'])) {
         PropelAutoloader::getInstance()->addClassPaths(self::$configuration['classmap']);
         PropelAutoloader::getInstance()->register();
     }
     self::$isInit = true;
 }
Example #14
0
 /**
  * Initializes Propel
  *
  * @throws     PropelException Any exceptions caught during processing will be
  *                             rethrown wrapped into a PropelException.
  */
 public static function initialize()
 {
     if (self::$configuration === null) {
         throw new PropelException("Propel cannot be initialized without " . "a valid configuration. Please check the log files " . "for further details.");
     }
     self::configureLogging();
     // Support having the configuration stored within a 'propel' sub-section or at the top-level
     if (isset(self::$configuration['propel']) && is_array(self::$configuration['propel'])) {
         self::$configuration = self::$configuration['propel'];
     }
     // reset the connection map (this should enable runtime changes of connection params)
     self::$connectionMap = array();
     foreach (self::$configuration['datasources'] as $key => $datasource) {
         if ($key != 'default' && isset($datasource['classes'])) {
             // merge the classes to the autoload map
             self::$autoloadMap = array_merge($datasource['classes'], self::$autoloadMap);
         }
     }
     self::$isInit = true;
 }
 /**
  * @return \PropelPDO
  */
 protected function getMockPropelConnection()
 {
     if (!class_exists('Lexik\\Bundle\\TranslationBundle\\Propel\\om\\BaseFile')) {
         // classes are built in-memory.
         $builder = new \PropelQuickBuilder();
         $builder->setSchema(file_get_contents(__DIR__ . '/../../Resources/config/propel/schema.xml'));
         $builder->setClassTargets(array('tablemap', 'peer', 'object', 'query'));
         $con = $builder->build();
     } else {
         // in memory-classes already exist, create connection and SQL manually
         $dsn = 'sqlite::memory:';
         $adapter = new \DBSQLite();
         $con = new \PropelPDO($dsn, null, null);
         $con->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_WARNING);
         $name = 'default';
         if (!\Propel::isInit()) {
             \Propel::setConfiguration(array('datasources' => array('default' => $name)));
         }
         \Propel::setDB($name, $adapter);
         \Propel::setConnection($name, $con, \Propel::CONNECTION_READ);
         \Propel::setConnection($name, $con, \Propel::CONNECTION_WRITE);
         // don't rebuild classes
         $builder = new \PropelQuickBuilder();
         $builder->setSchema(file_get_contents(__DIR__ . '/../../Resources/config/propel/schema.xml'));
         $builder->buildSQL($con);
     }
     return $con;
 }
 /**
  * Open a session.
  *
  * @param string
  * @param string
  *
  * @return bool true, if the session was opened, otherwise an exception is
  *              thrown.
  *
  * @throws <b>DatabaseException</b> If a connection with the database does
  *                                  not exist or cannot be created.
  */
 public function sessionOpen($path, $name)
 {
     // what database are we using?
     $database = $this->getParameterHolder()->get('database', 'default');
     // autoload propel propely if we're reusing the propel connection for session storage
     if ($this->getContext()->getDatabaseManager()->getDatabase($database) instanceof sfPropelDatabase && !Propel::isInit()) {
         $error = 'Creole dabatase connection is the same as the propel database connection, but could not be initialized.';
         throw new sfDatabaseException($error);
     }
     $this->db = $this->getContext()->getDatabaseConnection($database);
     if ($this->db == null || !$this->db instanceof Connection) {
         $error = 'Creole dabatase connection doesn\'t exist. Unable to open session.';
         throw new sfDatabaseException($error);
     }
     return true;
 }
        $criteria = new Criteria(LorfieldsPeer::DATABASE_NAME);
        $criteria->add(LorfieldsPeer::ID, $pk);
        $v = LorfieldsPeer::doSelect($criteria, $con);
        return !empty($v) > 0 ? $v[0] : null;
    }
    public static function retrieveByPKs($pks, $con = null)
    {
        if ($con === null) {
            $con = Propel::getConnection(self::DATABASE_NAME);
        }
        $objs = null;
        if (empty($pks)) {
            $objs = array();
        } else {
            $criteria = new Criteria();
            $criteria->add(LorfieldsPeer::ID, $pks, Criteria::IN);
            $objs = LorfieldsPeer::doSelect($criteria, $con);
        }
        return $objs;
    }
}
if (Propel::isInit()) {
    try {
        BaseLorfieldsPeer::getMapBuilder();
    } catch (Exception $e) {
        Propel::log('Could not initialize Peer: ' . $e->getMessage(), Propel::LOG_ERR);
    }
} else {
    require_once 'lib/model/map/LorfieldsMapBuilder.php';
    Propel::registerMapBuilder('lib.model.map.LorfieldsMapBuilder');
}
Example #18
0
 /**
  * Initializes Propel
  *
  * @throws     PropelException Any exceptions caught during processing will be
  *                             rethrown wrapped into a PropelException.
  */
 public static function initialize()
 {
     if (self::$configuration === null) {
         throw new PropelException("Propel cannot be initialized without a valid configuration. Please check the log files for further details.");
     }
     self::configureLogging();
     // reset the connection map (this should enable runtime changes of connection params)
     self::$connectionMap = array();
     if (isset(self::$configuration['classmap']) && is_array(self::$configuration['classmap'])) {
         PropelAutoloader::getInstance()->addClassPaths(self::$configuration['classmap']);
         PropelAutoloader::getInstance()->register();
     }
     self::$isInit = true;
 }