Over engineering.

Second system effect?

The Mythical Man Month

http://en.wikipedia.org/wiki/The_Mythical_Man_Month#The_second-system_effect

On May 31, 2012, at 1:39 PM, Jamie wrote:

> I suggest that you use the event system to accomplish this, as it does
> exactly what you're describing:
> 
> http://book.cakephp.org/2.0/en/core-libraries/events.html
> 
> So, let's say you have a Navigation plugin and you want to gather
> navigation items from every plugin in your app. When you want to
> gather the items, you'd broadcast an event. You'd have listeners in
> each plugin that would listen for the broadcast and return the items
> you want.
> 
> - Jamie
> 
> On May 31, 9:53 am, Vinicius Dusso <[email protected]> wrote:
>> Sure, I know I'm able to use Interfaces where I want to. I just want to
>> know if there is a easier way to do this using the CakePHP Plugins. And if
>> isn't, if there is a pattern to use Interfaces and let the CakePHP
>> autoinclude them, like it did with the MVC classes.
>> 
>> Thanks,
>> 
>> Vinicius
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> On Thursday, May 31, 2012 1:07:35 PM UTC-3, jeremyharris wrote:
>> 
>>> CakePHP is just PHP, so there's no reason you couldn't use interfaces
>>> where you wanted to. The users of the plugins would just need to understand
>>> that they need to implement them.
>> 
>>> On Thursday, May 31, 2012 4:07:13 AM UTC-7, Vinicius Dusso wrote:
>> 
>>>> Hello all,
>> 
>>>> Did everyone tried to use PHP's Interface as Extension Point in CakePHP?
>>>> My idea is to create a fully modular app. To build a menu, for example, I
>>>> would be able to do something like this:
>> 
>>>> The method 'getExtensionPoint' will get all the classes that implements
>>>> the given interface, at run time.
>> 
>>>> // The core of extension point
>>>> class MenuController {
>> 
>>>>   function _buildMenu() {
>>>>     $menu = array();
>> 
>>>>     $menuProviders = $this->getExtensionPoint('IMenu');
>>>>     foreach($menuProviders as $menuProvider) {
>>>>       $menu += $menuProvider->getMenu();
>>>>     }
>>>>   }
>> 
>>>> }
>> 
>>>> // Some class ( could be a Controller or a Model ) which uses this
>>>> extension point
>>>> class User implements IMenu {
>> 
>>>>   function getMenu() {
>>>>     return array('Users' => '/user/list');
>>>>   }
>> 
>>>> }
>> 
>>>> // The Interface, to bind the extended classes
>>>> public interface IMenu {
>>>>   function getMenu();
>>>> }
>> 
>>>> Sorry for write all this code here.
>>>> Someone already did something like this? This can be done using the
>>>> plugins in CakePHP ?
>> 
>>>> Thanks in advance !
>> 
>>>> Vinicius
> 
> -- 
> Our newest site for the community: CakePHP Video Tutorials 
> http://tv.cakephp.org 
> Check out the new CakePHP Questions site http://ask.cakephp.org and help 
> others with their CakePHP related questions.
> 
> 
> To unsubscribe from this group, send email to
> [email protected] For more options, visit this group at 
> http://groups.google.com/group/cake-php

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to