Re: Beginner Tutorials for using CLASSES in PHP4

From: Date: Tue, 09 Oct 2007 17:51:00 +0000
Subject: Re: Beginner Tutorials for using CLASSES in PHP4
References: 1 2 3 4 5 6 7 8 9 10 11  Groups: php.general 
Request: Send a blank email to php-general+get-262987@lists.php.net to get a copy of this message
""Nathan Nobbe"" <quickshiftin@gmail.com> wrote in message news:7dd2dc0b0710091015g7c29be93h671aa51bb125198e@mail.gmail.com... > On 10/9/07, Robert Cummings <robert@interjinn.com> wrote: >> >> Why would I use an interface? :) > > because inheritance is not always optimal. I have never found a prolem when using an interface was the only solution, or even ANY kind of solution. The fact that your designs need it speaks volumes of the problems with your designs. > What's the problem that's outlined? I'm too lazy to go and look :| > > /** > * CI_BASE - For PHP 4 > * > * This file is used only when CodeIgniter is being run under PHP 4. > * > * In order to allow CI to work under PHP 4 we had to make the Loader class > * the parent of the Controller Base class. It's the only way we can > * enable functions like $this->load->library('email') to instantiate > * classes that can then be used within controllers as $this->email->send() > * > * PHP 4 also has trouble referencing the CI super object within > application > * constructors since objects do not exist until the class is fully > * instantiated. Basically PHP 4 sucks... > * > * Since PHP 5 doesn't suffer from this problem so we load one of > * two files based on the version of PHP being run. > * > * @package CodeIgniter > * @subpackage codeigniter > * @category front-controller > * @author Rick Ellis > * @link http://www.codeigniter.com/user_guide/ > */ > > -nathan > There's your problem, then. You are wasting your time trying to implement fancy design patterns just because design patterns are supposed to be "cool". Loader class, Controller Base class, Front Controller - I have none of that crap in my code, so I don't encounter the problems you have. When I see code like "$this->load->library('email') " I just thank my lucky stars that I don't have to maintain it. I think some serious refactoring is long overdue. Perhaps you are trying to implement something from another language and expecting PHP to be just like that other language, which is always a stupid mistake. PHP is different, therefore the solution will be different. I suggest you learn how PHP works and design accordingly, and stop trying to force it into emulating another language. -- Tony Marston http://www.tonymarston.net http://www.radicore.org

« previous php.general (#262987) next »