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