> On Thu, 4 Apr 2002, Maxim Maletsky wrote:
> > You can try to load all those classes as texts into a db and then to
execute
> > the needed ones as eval()ed strings. It could be easy for you to create
the
> > logic because the PHP code are stings and are never included but
SELECTed.
> > Not sure if this could be wise to do, just throwing out an idea.
>
> Offhand I'm guessing the payoff wouldn't be great, because you'd lose the
> benefit of PHP's own code caching. Depends on how much of this voluminous
> code actually gets used on any one run, I suppose. But why not do the same
> thing with conditional includes, and then at least let PHP cache it?

Thanks for your suggestion Maxim and Miguel.

Unfortunately storing code in db wouldn't solve my problem, becuse then I
still had to recognise when the classes are really needed. Now in the 52k
lines of code we just have
$x = new SomeClass();
$y = new OtherClass(); or
$result = AnotherClass::staticMethod(); statements, and we have many of
them.
That's why I'm searching for a sollution that we can use without rewrite all
these calls with the extension of a test if the needed class's definition
was or wasn't loaded before.
So I'd like to use conditional includes, and my first thought was that
somehow I can make it with a custom error handler, but unfortunately I
realized quickly it's not that simple.
Maybe you or someone can help, If I explain my problem in a little more
detail.
We have a "portal-creator" system (like many of you, I guess), with an own
developed template system. Of course we sell it to customers who have their
own needs. They create the designs, or tell us how the site should look, and
the created templates determine what template classes are needed for
generating the pages. The template classes require other "base" classes that
are responsible for handling the db storage.
We have about 430 classes (I misscalculated it in my firts mail), and they
have many "cross reference" to each other. So it's hard to know explicitly
if a class definition is needed, except of course at every new operator, and
static method call, but there are plenty of them.
Parsing of (almost) all of the php code takes about 1,5secs on an athlon 800
cpu, which is far from reasonable. I expect that with conditional includes
at least half of the code wouldn't get parsed on a normal site, and even
less on a smaller site.
I wrote that I tried many code caches (I sent the results in deatils in
December), but none of them - except Zend Cache - made significant speed-up
(PHP-Accelerator also gave good results for speed, but I got many errors).
Unfortunatelly Zend Cache isn't affordable for many of our client,
especially the smaller ones, who don't need many of the features of the
system, so they would benefit much from the conditional includes.

I hope someone who had the same situation can help, or at least I get
reinforcement, that I can't by-pass the hard way (to write an if clause
before every use of a class wether it was loaded or not).
Thanks for your help,
    Arpi



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to