Re: [PHPTAL] require_once vs autoloading

2010-06-05 Thread romtek
On Tue, Jun 1, 2010 at 11:10 PM, Tjerk Meesters wrote:

> I could be wrong here, but I think it's not so much any problem with
> require_once as it is to reduce memory consumption while using the
> library. This happens when developers only use 30% of the library and
> yet the whole shebang is loaded on every request ;-)
>

I think I have noticed reduction in memory consumption but not much. For one
page I've tested with, it went from 1.58 MB to 1.51 MB (about 4.4%). Have
others noticed bigger reduction?
___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Kornel Lesiński

On 02-06-2010 at 11:54:30 Tjerk Meesters  wrote:

If people already have autoloader code and wish to use only one  
autoloader
in their application or if they find the autoloader they are already  
using conflicts with the phptal one then it would be good to allow  
them to disable the phptal autoloader.


require_once "PHPTAL.php";
spl_autoload_unregister(array('PHPTAL','autoload'));
// if needed: spl_autoload_register('__autoload');

Would that be OK?


Wouldn't that cause issues when PHPTAL needs to load more classes
during the course of the script's execution?


Yes, but PHPTAL doesn't need to load more classes when PHPTAL.php is  
included. I could fall back to require_once if this is ever needed.


--
regards, Kornel

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Robert Goldsmith
>> require_once "PHPTAL.php";
>> spl_autoload_unregister(array('PHPTAL','autoload'));
>> // if needed: spl_autoload_register('__autoload');
>> 
>> Would that be OK?
> 
> Wouldn't that cause issues when PHPTAL needs to load more classes
> during the course of the script's execution?

I think the idea is that this code would go in the host app and could be used 
to unregister the phptal autoloader as soon as it has been registered as part 
of the require_once on phptal.php. You would only do this if you already have 
an autoloader.

> The autoloader stack should not cause any conflicts; if a class can't
> be found based on the naming conventions of a particular class loader,
> it will go to the next loader.

That's quite true. If the already-configured autoloader in the host app knows 
how to handle PHPTAL classes then the phptal autoloader will never actually be 
called.

> 
> The argument that one would only want one autoloader is somewhat weak;
> some other libraries also use their own loaders, so I see no reason to
> resist that for purity sake. I don't mind to be proven wrong though
> ;-)

It's less for purity and more for complexity and debugging. Having worked in 
the past in environments where there were multiple autoloaders all doing their 
little tricks (and, admittedly, before the spl autoloader existed) I can tell 
you that debugging code can become a very tiresome business and bugs related to 
the order in which php files are loaded become very hard indeed to track down.

One autoloader is a decent tradeoff between resource usage and code readability 
and predictability. I personally believe 2 or more autoloaders tip the balance 
away from the latter but with no additional benefit to the former.

Robert
___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Tjerk Meesters
2010/6/2 Kornel Lesiński :
> On 02-06-2010 at 11:10:43 Robert Goldsmith  wrote:
>
>>> Why would someone choose to replace PHPTAL's autoload with something
>>> else? (I'm not implying it's perfect or such, just wondering what problem
>>> would such option solve).
>>
>> If people already have autoloader code and wish to use only one autoloader
>> in their application or if they find the autoloader they are already using
>> conflicts with the phptal one then it would be good to allow them to disable
>> the phptal autoloader.
>
> require_once "PHPTAL.php";
> spl_autoload_unregister(array('PHPTAL','autoload'));
> // if needed: spl_autoload_register('__autoload');
>
> Would that be OK?

Wouldn't that cause issues when PHPTAL needs to load more classes
during the course of the script's execution?

The autoloader stack should not cause any conflicts; if a class can't
be found based on the naming conventions of a particular class loader,
it will go to the next loader.

The argument that one would only want one autoloader is somewhat weak;
some other libraries also use their own loaders, so I see no reason to
resist that for purity sake. I don't mind to be proven wrong though
;-)

The "magic" required to get around my earlier __autoload() issue
should be the only thing that PHPTAL should be concerned about.

>
> --
> regards, Kornel
>
> ___
> PHPTAL mailing list
> PHPTAL@lists.motion-twin.com
> http://lists.motion-twin.com/mailman/listinfo/phptal
>



-- 
--
Tjerk

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Robert Goldsmith
I'd have thought that code would do the job assuming it doesn't clobber any 
previously registered autoloaders. I'd prefer it wrapped up in a little 
function, however, just for convenience :) 

By my understanding, you don't need to actually call the autoload method 
'__autoload' so you could call it something more specific to phptal.

Robert

On 2 Jun 2010, at 11:29, Kornel Lesiński wrote:

> On 02-06-2010 at 11:10:43 Robert Goldsmith  wrote:
> 
>>> Why would someone choose to replace PHPTAL's autoload with something else? 
>>> (I'm not implying it's perfect or such, just wondering what problem would 
>>> such option solve).
>> 
>> If people already have autoloader code and wish to use only one autoloader 
>> in their application or if they find the autoloader they are already using 
>> conflicts with the phptal one then it would be good to allow them to disable 
>> the phptal autoloader.
> 
> require_once "PHPTAL.php";
> spl_autoload_unregister(array('PHPTAL','autoload'));
> // if needed: spl_autoload_register('__autoload');
> 
> Would that be OK?
> 
> -- 
> regards, Kornel
> 
> ___
> PHPTAL mailing list
> PHPTAL@lists.motion-twin.com
> http://lists.motion-twin.com/mailman/listinfo/phptal


___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Kornel Lesiński

On 02-06-2010 at 11:10:43 Robert Goldsmith  wrote:

Why would someone choose to replace PHPTAL's autoload with something  
else? (I'm not implying it's perfect or such, just wondering what  
problem would such option solve).


If people already have autoloader code and wish to use only one  
autoloader in their application or if they find the autoloader they are  
already using conflicts with the phptal one then it would be good to  
allow them to disable the phptal autoloader.


require_once "PHPTAL.php";
spl_autoload_unregister(array('PHPTAL','autoload'));
// if needed: spl_autoload_register('__autoload');

Would that be OK?

--
regards, Kornel

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Kornel Lesiński

On 02-06-2010 at 10:58:41 Tjerk Meesters  wrote:

Zend uses spl_autoload_register() as well I believe, so that should be  
safe.


The main problem I can see is that if there's an existing __autoload()
function, spl_autoload_register() will replace it (as stated in the
manual). I don't think putting the autoloader in a separate file will
make a difference.

This will probably require a change in the major/minor revision
number, so that developers are aware that it may break their code.


That's a good point.

This might avoid the problem in basic case:

if (!spl_autoload_functions() && function_exists('__autoload')) {
spl_autoload_register('__autoload');
}

but I'm not sure if it's not too hacky.

--
regards, Kornel

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Robert Goldsmith
> Why would someone choose to replace PHPTAL's autoload with something else? 
> (I'm not implying it's perfect or such, just wondering what problem would 
> such option solve).

If people already have autoloader code and wish to use only one autoloader in 
their application or if they find the autoloader they are already using 
conflicts with the phptal one then it would be good to allow them to disable 
the phptal autoloader.

Robert
___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Kornel Lesiński

On 02-06-2010 at 10:33:00 Robert Goldsmith  wrote:


No idea :)

However, if you allowed for autoloading to be optional then if needed  
people could turn it off and replace it with an external system such as  
Zend's. Maybe moving the autoloader into its own file and telling people  
they need to require_once the file if they wish to use the phptal  
autoloader.


Why would someone choose to replace PHPTAL's autoload with something else?  
(I'm not implying it's perfect or such, just wondering what problem would  
such option solve).


--
regards, Kornel

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Tjerk Meesters
Hi,

Zend uses spl_autoload_register() as well I believe, so that should be safe.

The main problem I can see is that if there's an existing __autoload()
function, spl_autoload_register() will replace it (as stated in the
manual). I don't think putting the autoloader in a separate file will
make a difference.

This will probably require a change in the major/minor revision
number, so that developers are aware that it may break their code.


Best,
  Tjerk

On Wed, Jun 2, 2010 at 5:33 PM, Robert Goldsmith  wrote:
> No idea :)
>
> However, if you allowed for autoloading to be optional then if needed people 
> could turn it off and replace it with an external system such as Zend's. 
> Maybe moving the autoloader into its own file and telling people they need to 
> require_once the file if they wish to use the phptal autoloader.
>
> Robert
>
> On 2 Jun 2010, at 10:25, Kornel Lesiński wrote:
>
>> On 02-06-2010 at 09:56:23 Robert Goldsmith  wrote:
>>
>>> I think autoloading is a good idea but please keep in mind that the app the 
>>> phptal is being used within may already have autoloading configured. a 
>>> prime example would be Zend.
>>
>> I've used spl_autoload_register(). Does it conflict with Zend?
>>
>> --
>> regards, Kornel
>>
>> ___
>> PHPTAL mailing list
>> PHPTAL@lists.motion-twin.com
>> http://lists.motion-twin.com/mailman/listinfo/phptal
>
>
> ___
> PHPTAL mailing list
> PHPTAL@lists.motion-twin.com
> http://lists.motion-twin.com/mailman/listinfo/phptal
>



-- 
--
Tjerk

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Robert Goldsmith
No idea :)

However, if you allowed for autoloading to be optional then if needed people 
could turn it off and replace it with an external system such as Zend's. Maybe 
moving the autoloader into its own file and telling people they need to 
require_once the file if they wish to use the phptal autoloader.

Robert

On 2 Jun 2010, at 10:25, Kornel Lesiński wrote:

> On 02-06-2010 at 09:56:23 Robert Goldsmith  wrote:
> 
>> I think autoloading is a good idea but please keep in mind that the app the 
>> phptal is being used within may already have autoloading configured. a prime 
>> example would be Zend.
> 
> I've used spl_autoload_register(). Does it conflict with Zend?
> 
> -- 
> regards, Kornel
> 
> ___
> PHPTAL mailing list
> PHPTAL@lists.motion-twin.com
> http://lists.motion-twin.com/mailman/listinfo/phptal


___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Kornel Lesiński

On 02-06-2010 at 09:56:23 Robert Goldsmith  wrote:

I think autoloading is a good idea but please keep in mind that the app  
the phptal is being used within may already have autoloading configured.  
a prime example would be Zend.


I've used spl_autoload_register(). Does it conflict with Zend?

--
regards, Kornel

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Robert Goldsmith
I think autoloading is a good idea but please keep in mind that the app the 
phptal is being used within may already have autoloading configured. a prime 
example would be Zend.

Robert

On 2 Jun 2010, at 09:52, Kornel Lesiński wrote:

> On 02-06-2010 at 05:10:07 Tjerk Meesters  wrote:
> 
>> I could be wrong here, but I think it's not so much any problem with
>> require_once as it is to reduce memory consumption while using the
>> library. This happens when developers only use 30% of the library and
>> yet the whole shebang is loaded on every request ;-)
> 
> Yes, that's the reason. Large parts of PHPTAL are used only at compile-time. 
> There are optional parts like filters, translation services. There's bunch of 
> Exception subclasses which usually are not used.
> 
> I'd like all PHPTAL features to "just work" after you include only 
> PHPTAL.php, but OTOH I don't want to load classes that are not going to be 
> used.
> 
> 
> Let me know if you find any problems with autoload.
> 
> -- 
> regards, Kornel
> 
> ___
> PHPTAL mailing list
> PHPTAL@lists.motion-twin.com
> http://lists.motion-twin.com/mailman/listinfo/phptal


___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-02 Thread Kornel Lesiński

On 02-06-2010 at 05:10:07 Tjerk Meesters  wrote:


I could be wrong here, but I think it's not so much any problem with
require_once as it is to reduce memory consumption while using the
library. This happens when developers only use 30% of the library and
yet the whole shebang is loaded on every request ;-)


Yes, that's the reason. Large parts of PHPTAL are used only at  
compile-time. There are optional parts like filters, translation services.  
There's bunch of Exception subclasses which usually are not used.


I'd like all PHPTAL features to "just work" after you include only  
PHPTAL.php, but OTOH I don't want to load classes that are not going to be  
used.



Let me know if you find any problems with autoload.

--
regards, Kornel

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] require_once vs autoloading

2010-06-01 Thread Tjerk Meesters
I could be wrong here, but I think it's not so much any problem with
require_once as it is to reduce memory consumption while using the
library. This happens when developers only use 30% of the library and
yet the whole shebang is loaded on every request ;-)


On Wed, Jun 2, 2010 at 5:20 AM, romtek  wrote:
> Kornel, I've noticed this item on phptal.org: "Removed all require_once and
> switched to autoloading". What are the problems with using require_once?
> Roman
> ___
> PHPTAL mailing list
> PHPTAL@lists.motion-twin.com
> http://lists.motion-twin.com/mailman/listinfo/phptal
>
>



-- 
--
Tjerk

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


[PHPTAL] require_once vs autoloading

2010-06-01 Thread romtek
Kornel, I've noticed this item on phptal.org: "Removed all require_once and
switched to autoloading". What are the problems with using require_once?

Roman
___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal