Be careful with aggregation, it is REALLY unstable in PHP 4.3.0.  I get
crashes of PHP left and right, when changing the most random things (like
adding a comment in another part of the code separate from aggregation!!)

Greg
--
phpDocumentor
http://www.phpdoc.org

"Jeff Warrington" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> On Tue, 28 Jan 2003 16:20:20 +0100, Maxim Maletsky wrote:
>
> >
>
> I use PHP classes extensively and very often use classes
> within other classes.
>
> First off, I would make sure to take advantage of inheritence
> as much as possible. I have heirarchies up to 4 deep for
> some of my classes depending on how much specialization
> I need while at the same time maintaining only one set
> of code for functionality common to all subclasses.
>
> As for using classes within classes, I don't include
> the classes within a class definition nor within
> a method def. I include the class def in the class
> file but outside the actual class {} statement.
>
> When I instantiate the class, if I will need the object
> ref to pass to other classes or to other methods within
> the calling class, I assign the initial object
> instantiation to a class variable. That way any class
> methods can have ready access to that class via the
> ojbect reference stored in the class variable.
>
> Only when I know for sure that the use of a class will
> be for one purpose do I include and instantiate within
> a method.
>
> as always, YMMV depending on the structure of your project.
>
> NOTE: There is a set of new PHP functions that allow
> a sort of dynamic multiple inheritence. You can look
> here for info:
>
> http://www.php.net/manual/en/ref.objaggregation.php
>
> Jeff
>
>
>
> > "@ Nilaab" <[EMAIL PROTECTED]> wrote... :
> >
> >> Hello everyone,
> >>
> >> I want to be able to use objects to create my future pages. My goal is
> >> to use methods of classes to make the original front-line script easier
> >> to read, while all the processing is done with a simple call to the
> >> different classes from a single class. Please read futher, as I'll get
> >> to a point and to my question...
> >>
> >> I have many classes that do different tasks, like formValidator.class,
> >> stringManipulator.class, db.class, fileManipulation.class,
> >> template.class, etc (these are self-explanitory as their names
suggest).
> >> Then, I might have a class called category.class that adds, deletes,
> >> edits, moves, and renames categories within the filesystem and
database.
> >> But I would have a front-line script called category.php that would
call
> >> the necessary methods of category.class at certain points, depending on
> >> the task being done on a specific step.
> >>
> >> In other words I want category.class to call the other classes and do
> >> something with them, then in turn I want category.php to call objects
in
> >> category.class for a specific task, such as:
> >>
> >> <?php
> >>
> >> // category.php
> >>
> >> include ("category.class");
> >> $cat = new category ();
> >> $cat->addCategory($new_cat_name);
> >> // or
> >> $cat->editCategory($cat_name);
> >> // or
> >> $cat->deleteCategory($cat_name);
> >> // or
> >> $cat->moveCategory($cat_name);
> >> // or
> >> $cat->renameCategory($cat_name);
> >>
> >> ?>
> >>
> >>
> >> My question is:
> >>
> >> How can I call a class within another class and do something with it?
> >> Right now I'm doing it the most convenient way I know, which is
> >> including other classes using the include() function within the methods
> >> of the category.class. There is no multiple-inheritance allowed in PHP,
> >> so I can only use inheritance on one class.
> >
> > Including new classes within the existing classes is not such a bad idea
> > as it ensures you to have only the necessary classes called.
> >
> >> I am also extremely skeptical about creating too many classes at a time
> >> in one script. Do the above examples degrade performance speed of the
> >> script when I call too many classes? Also, isn't there a way to use
> >> sessions to save created classes and then use them again for other
> >> scripts without the need to make a new instance of the same class again
> >> and again?
> >
> > yes, you can serialize/unserialize classes into the sessions. This makes
> > it a little more complicated, but can be helpful sometimes.
> >
> >> I am really looking for a better way to organize my code while still
> >> being able to use these classes whenever I need them and at the same
> >> time keeping the category.php file clean and easy to read. Is there a
> >> tutorial on how to organize code? I'm not looking for html template
> >> tutorials. Just how to get around inheritance limits while still
keeping
> >> performance and clean-code in mind.
> >
> > You know what I have once done? I created a file with functions that
> > return you the object pointers. It would create (declare) the class
> > whenever it was not declared before or just return the pointer from a
> > global variable if it was declared before. That way, you only load a few
> > functions, and whenever you need a class you assign a variable to the
> > function's return to have the class. This limits you script to only
> > classes you use and no includes within the script itself. A kind of
silly
> > method, but can be easy to work with.
> >
> >
> > Also, check out the new Zend 2 engine, it has tons of improvements with
> > classes for PHP5. Currently the code is in CVS (checkout php5 module).
> > Changes are listed here:
> >
> > http://cvs.php.net/co.php/ZendEngine2/ZEND_CHANGES
> >
> >
> > --
> > Maxim Maletsky
> > [EMAIL PROTECTED]
>



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

Reply via email to