我6個月期間使用這真棒框架,我學到了很多,但我不知道是否有可能創建一個內部結構來模擬像笨模塊。我知道有可能爲此使用插件,但將它們連接起來並在它們之間傳遞信息似乎太困難了。模塊CakePHP中
我的目標是讓像模塊的Joomla,但我怎麼能做到這一點不改變CakePHP的核心是什麼?那可能嗎?
我6個月期間使用這真棒框架,我學到了很多,但我不知道是否有可能創建一個內部結構來模擬像笨模塊。我知道有可能爲此使用插件,但將它們連接起來並在它們之間傳遞信息似乎太困難了。模塊CakePHP中
我的目標是讓像模塊的Joomla,但我怎麼能做到這一點不改變CakePHP的核心是什麼?那可能嗎?
嗯,你是對的。 Joomla中的模塊是獨立的代碼包,類似於linux中的包(模塊可能依賴於其他模塊),但它們都是通過核心功能工作的。我想要做的是在CakePHP框架上編寫一個核心,其中包括管理系統中所有類型模塊的功能,但我不知道修改CakePHP內核以處理這種情況的最佳方法是什麼......
我之前使用Codeigniter做過這件事,因此我想回到Codeigniter,但Cakephp幫助我在更短的時間內創建應用程序......如果可能的話,這將是一個很棒的系統。
每個模塊的代碼應該是自己的目錄,其中包括一個控制器,目錄,模型,視圖,配置等......這樣的擴展了修改CakePHP的核心迷你CakePHP的應用程序內。我認爲這可以通過插件完成,但互連它們並在它們之間傳遞信息的方式似乎並不是最好的方式。
我希望你能理解我的解釋,對不起我的英語。
歡迎來到SO! :)您不應將問題的澄清作爲答案發布,而是請更新您的問題。它也可以讓你的問題顯示*未答覆*,這可能有助於吸引注意力。話雖如此,你在想什麼樣的「互聯」? AFAIK(沒有使用過多的插件),你可以在插件中使用其他插件和[使用'requestAction'進行控制器間通信](http://book.cakephp.org/complete/1111/Plugins#Plugin-Tips-1118) ,所以你錯過的一個具體例子會很好。 – deceze 2010-10-18 01:20:57
我在做什麼,因爲我已打算在現在的項目有以下
在我的bootstrap.php
<?php
....
App::build(array(
'plugins' => array(
join(DS, array(null, 'Users', 'abryant', 'Sites', 'appName', 'tools')),
),
...
));
?>
然後,我把我所有的實用插件的工具插件文件夾。這是針對您用作不提供控制器/操作對的內部實用程序的插件。 IE插件的行爲,部件,材料從GitHub等
其中一個插件我總是搶了我的東西是Eventful,讓您處理事件分派,並使用類似的控制器或模型事件類接收。
然後建立具有相應AppControllerEvent類的說明告訴你使用的文件夾中的主AppController的。然後,您可以保持您的插件文件夾清潔模塊提供控制器,視圖或其他直接用戶交互。
您可以使用多事的播放插件從事件下降到App在AppModel,或AppController的那種水平。如果仔細考慮,可以使用應用程序級別事件來詢問已安裝插件的響應,然後循環執行一組事件以註冊塊或將信息注入到設置的視圖變量中。
當您使用事件並考慮事件如何與您的應用程序進行通信時,會出現很多問題。
最初看起來很困難,但我認爲這是解決這個問題的最佳方案。
您是否爲所有模塊編寫插件?還是你編寫了控制器,模型等內核?和插件內的額外模塊?我在CakePHP中以這種方式工作是很奇怪的。我會嘗試編寫所有模塊,我的意思是一個核心插件,設置插件,模塊插件(管理其他插件),等等......而且我可能會使用bootstraping。
非常感謝您的回答,並對我對問題的錯誤解釋感到抱歉,但是我的想法太籠統了,我無法更好地解釋它。
考慮到您要求的Cake專家可能不熟悉Joomla中模塊的工作方式以及Cake與插件的不同之處,您應該更好地描述您想要做什麼以及插件如何達到。 – deceze 2010-10-17 07:01:46
joomla是一隻狗。只是我的2美分。 – the0ther 2010-10-18 19:05:51