Re: Beginner Tutorials for using CLASSES in PHP4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



""Nathan Nobbe"" <quickshiftin@xxxxxxxxx> wrote in message 
news:7dd2dc0b0710091015g7c29be93h671aa51bb125198e@xxxxxxxxxxxxxxxxx
> On 10/9/07, Robert Cummings <robert@xxxxxxxxxxxxx> 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 

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux