Hi Benjamin,

Thanks a lot for the directions. If anything works, I'll give some feedback.

Cheers,
Piotrek


Benjamin Eberlei pisze:
> Hello,
> 
> ezc_bootstrap.php uses the __autoload function, which is overwritten when 
> additionally be used with spl_autoload_register, which probably Propel is 
> doing.
> 
> You musteither  register both autoloading facilities with the function 
> spl_autoload_register, to have both autloadings working, or you have to build 
> your own __autoload function and depending on the beginning of the classname 
> (strpos($className, 'ezc') === 0) call either the ezc autoloader or the 
> propel 
> one.
> 
> i hope that helps,
> Benjamin
> 
> 
> 
> 
> On Sunday 29 March 2009 07:57:32 Piotrek Karas wrote:
>> Hi all,
>>
>> Maybe this is more of a Propel problem than eZC problem, but let's see.
>>
>> I'm trying to incorporate some of the eZComponents (newsest
>> pear-installed version) into my appliaction that uses Propel 1.3 in
>> runtime. Unfortunately, it seems like they conflict with each other. Any
>> one by itself works fine, but when I start both, initiation of one will
>> make the other useless. I've tried several ways of including eZC - same
>> thing happens.
>>
>> So, the following code would work:
>>
>> <?php
>> set_include_path( '/usr/local/propel/runtime/classes'
>>    . PATH_SEPARATOR . get_include_path() );
>> set_include_path( '/var/www/myapp/model/classes'
>>    . PATH_SEPARATOR . get_include_path() );
>>
>> require_once 'ezc/Base/ezc_bootstrap.php';
>>
>> $iniPath = '/var/www/myapp/settings/conf.ini';
>> $ini = ezcConfigurationManager::getInstance();
>> $ini->init( 'ezcConfigurationIniReader', $iniPath );
>> var_dump( $ini );
>>
>> require_once 'propel/Propel.php';
>> Propel::init( '/var/www/myapp/model/conf/myapp-conf.php' );
>>
>> // This is a propel class:
>> $project = new Project();
>> ?>
>>
>> But of course it doesn't make sense to first use eZC in an application,
>> and only then other libraries ;)
>> So here's an example of code that would not work:
>>
>> <?php
>> set_include_path( '/usr/local/propel/runtime/classes'
>>    . PATH_SEPARATOR . get_include_path() );
>> set_include_path( '/var/www/myapp/model/classes'
>>    . PATH_SEPARATOR . get_include_path() );
>>
>> // declarations
>> require_once 'ezc/Base/ezc_bootstrap.php';
>>
>> require_once 'propel/Propel.php';
>> Propel::init( '/var/www/myapp/model/conf/myapp-conf.php' );
>>
>> // application in action
>> $iniPath = '/var/www/myapp/settings/conf.ini';
>> $ini = ezcConfigurationManager::getInstance();
>> $ini->init( 'ezcConfigurationIniReader', $iniPath );
>> var_dump( $ini );
>>
>> $project = new Project();
>> ?>
>>
>> This could would fail, the eZC class will fail:
>> Fatal error: Class 'ezcConfigurationManager' not found in
>> /var/www/myapp/test.php on line 17
>>
>> I do realize there's this mechanism for extending autoloads:
>> http://ezcomponents.org/docs/tutorials/Base#adding-class-repositories-locat
>> ed-outside-ez-components-to-autoload-system
>>
>> But this would be easy for custom application, but Propel comes with its
>> init method for runtime which I don't know how to fix...
>>
>> Any ideas of how to cope with this?
>>
>> Cheers,
>> Piotrek
> 

-- 
Components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/components

Reply via email to