Ah no that is not quite the issue. But you have an include to the CdbMembersPeer in your CdbUser class. You can of course only do that if you have initialized Propel before. Since you are relying on Agavi to load Propel for you, you have to add your Peer and Object classes (not the Base* ones) to autoload.xml instead of include()ing them in your code. This also improves performance.
As an alternative, you can use Propel 1.3, which uses its own autoloading mechanism. David Am 21.01.2008 um 23:55 schrieb David Zülke: > The stack trace looks like you have an incorrect entry for CdbUser in > your autoload.xml, it seems to be pointing to CdbMembersPeer. This > file is included, which triggers a Propel startup. Propel is loaded by > Agavi's autoloader, and this Propel loading transparently sets up a > connection. > > > David > > > > Am 21.01.2008 um 21:25 schrieb Selloso: > >>> Message: 2 >>> Date: Sun, 20 Jan 2008 20:48:21 +0100 >>> From: David Z?lke <[EMAIL PROTECTED]> >>> Subject: Re: [Agavi-Users] Propel Support in connection with >>> Security >>> To: Agavi Users Mailing List <[email protected]> >>> Message-ID: <[EMAIL PROTECTED]> >>> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes >>> >>> Hi, >>> >> Hi David, >>> can you provide the exact error message by Propel? >>> >>> >> There is no error message by propel. I logged in debug level, but >> the error appears before Propel is in action. >> >> I pasted the complete Stack Trace at the end of the mail. >> >>> Also, which version of Propel are you using? >>> >> I'm using the version 1.2.1 >> >>> I had this issue just the other day, but can't remember what it was >>> exactly... is the Propel runtime (runtime/classes/propel) on your >>> include path? Is your generated project on your include path? >>> >>> >> Both is on my include_path. If I hard code the config path in the >> AgaviPropelDatabase class it will work fine. >> So I guess there's problem concerning the bootstrap. >> >> Many thanks >> Sel >> PropelException >> An exception of type PropelException was thrown, but did not get >> caught during the execution of the request. You will find >> information provided by the exception along with a stack trace below. >> >> >> Unable to open configuration file: NULL Stack Trace >> • at exception origin >> in _/Applications/xampp/xamppfiles/lib/php/pear/propel/Propel.php >> line 249 >> • */ >> • public static function init($c) >> • { >> • >> self::configure($c); >> • self::initialize(); >> • } >> • >> • at Propel::init(NULL) >> in core.agavi_dir/database/AgaviPropelAutoload.php line 37 >> • // we don't need a _once here >> • require('propel/Propel.php'); >> • >> • >> Propel::init(AgaviPropelDatabase::getDefaultConfigPath()); >> • >> • ?> >> • at require('/Users/sel/Development/we … e/ >> AgaviPropelAutoload.php') >> in core.agavi_dir/core/Agavi.class.php line 69 >> • >> • if(isset(self::$autoloads[$class])) { >> • // class exists, let's include it >> • >> require(self::$autoloads[$class]); >> • } >> • >> • /* >> • at Agavi::__autoload('Propel') >> in unknown >> • at spl_autoload_call('Propel') >> in core.lib_dir/propel/cdb/om/BaseCdbMembersPeer.php line 578 >> • } // BaseCdbMembersPeer >> • >> • // static code to register the map builder for this Peer with >> the main Propel class >> • >> if (Propel::isInit()) { >> • // the MapBuilder classes register themselves with Propel >> during initialization >> • // so we need to load them here. >> • try { >> • at require_once('/Users/sel/Development/we … om/ >> BaseCdbMembersPeer.php') >> in core.lib_dir/propel/cdb/CdbMembersPeer.php line 4 >> • <?php >> • >> Warning: strpos() [function.strpos]: Offset not contained in string. >> in /Users/sel/Development/web/cdb/lib/agavi/exception/templates/ >> shiny.php on line 611 >> >> • // include base peer class >> • >> require_once 'cdb/om/BaseCdbMembersPeer.php'; >> • >> • // include object class >> • include_once 'cdb/CdbMembers.php'; >> • at require('/Users/sel/Development/we … el/cdb/ >> CdbMembersPeer.php') >> in core.lib_dir/user/CdbUser.class.php line 3 >> • <?php >> • >> Warning: strpos() [function.strpos]: Offset not contained in string. >> in /Users/sel/Development/web/cdb/lib/agavi/exception/templates/ >> shiny.php on line 611 >> >> • >> require ('/Users/sel/Development/web/cdb/app/lib/propel/cdb/ >> CdbMembersPeer.php'); >> • >> • >> • /** >> • * Responsible for Login and Logout >> • at require('/Users/sel/Development/we … ib/user/ >> CdbUser.class.php') >> in core.agavi_dir/core/Agavi.class.php line 69 >> • >> • if(isset(self::$autoloads[$class])) { >> • // class exists, let's include it >> • >> require(self::$autoloads[$class]); >> • } >> • >> • /* >> • at Agavi::__autoload('CdbUser') >> in unknown >> • at spl_autoload_call('CdbUser') >> in unknown >> • at ReflectionClass->__construct('CdbUser') >> in core.agavi_dir/config/AgaviFactoryConfigHandler.class.php line 223 >> • } >> • >> • try { >> • >> $rc = new ReflectionClass($data[$factory]['class']); >> • } catch(ReflectionException $e) { >> • $error = 'Configuration file "%s" specifies unknown >> class "%s" for entry "%s"'; >> • $error = sprintf($error, $config, $data[$factory] >> ['class'], $factory); >> • at AgaviFactoryConfigHandler->execute('/Users/sel/Development/we >> … /app/config/factories.xml', 'web') >> in core.agavi_dir/config/AgaviConfigCache.class.php line 123 >> • $validationFile = $handlerInfo['validation'] >> [AgaviXmlConfigParser::VALIDATION_TYPE_XMLSCHEMA][0]; >> • } >> • $handler->initialize($validationFile, null, >> $handlerInfo['parameters']); >> • >> $data = $handler->execute($config, $context); >> • } >> • >> • self::writeCacheFile($config, $cache, $data, false); >> • at AgaviConfigCache::callHandler('/Users/sel/Development/we … / >> app/config/factories.xml', '/Users/sel/Development/we … /app/config/ >> factories.xml', '/Users/sel/Development/we … >> s.xml_development_web.php', 'web') >> in core.agavi_dir/config/AgaviConfigCache.class.php line 164 >> • >> • if(self::isModified($filename, $cache)) { >> • // configuration file has changed so we need to reparse >> it >> • >> self::callHandler($config, $filename, $cache, $context); >> • } >> • >> • return $cache; >> • at AgaviConfigCache::checkConfig('/Users/sel/Development/we … / >> app/config/factories.xml', 'web') >> in core.agavi_dir/core/AgaviContext.class.php line 291 >> • $this->name = $profile; >> • >> • try { >> • >> >> include >> (AgaviConfigCache::checkConfig(AgaviConfig::get('core.config_dir') . >> '/factories.xml', $profile)); >> • } catch(Exception $e) { >> • AgaviException::printStackTrace($e, $this); >> • } >> • at AgaviContext->initialize('web') >> in core.agavi_dir/core/AgaviContext.class.php line 248 >> • if(!isset(self::$instances[$profile])) { >> • $class = __CLASS__; >> • self::$instances[$profile] = new $class; >> • >> self::$instances[$profile]->initialize($profile); >> • } >> • return self::$instances[$profile]; >> • } catch(Exception $e) { >> • at AgaviContext::getInstance('web') >> in _/Users/sel/Development/web/cdb/pub/index.php line 30 >> • // >> + >> ---------------------------------------------------------------------------+ >> • // | Call the controller's dispatch method on the default >> context | >> • // >> + >> ---------------------------------------------------------------------------+ >> • >> AgaviContext::getInstance('web')->getController()->dispatch(); >> • >> • >> • ?> >> >> _______________________________________________ >> users mailing list >> [email protected] >> http://lists.agavi.org/mailman/listinfo/users > > > _______________________________________________ > users mailing list > [email protected] > http://lists.agavi.org/mailman/listinfo/users > _______________________________________________ users mailing list [email protected] http://lists.agavi.org/mailman/listinfo/users
