2010-10-16 48 views
1

我6個月期間使用這真棒框架,我學到了很多,但我不知道是否有可能創建一個內部結構來模擬像笨模塊。我知道有可能爲此使用插件,但將它們連接起來並在它們之間傳遞信息似乎太困難了。模塊CakePHP中

我的目標是讓像模塊的Joomla,但我怎麼能做到這一點不改變CakePHP的核心是什麼?那可能嗎?

+0

考慮到您要求的Cake專家可能不熟悉Joomla中模塊的工作方式以及Cake與插件的不同之處,您應該更好地描述您想要做什麼以及插件如何達到。 – deceze 2010-10-17 07:01:46

+0

joomla是一隻狗。只是我的2美分。 – the0ther 2010-10-18 19:05:51

回答

0

嗯,你是對的。 Joomla中的模塊是獨立的代碼包,類似於linux中的包(模塊可能依賴於其他模塊),但它們都是通過核心功能工作的。我想要做的是在CakePHP框架上編寫一個核心,其中包括管理系統中所有類型模塊的功能,但我不知道修改CakePHP內核以處理這種情況的最佳方法是什麼......

我之前使用Codeigniter做過這件事,因此我想回到Codeigniter,但Cakephp幫助我在更短的時間內創建應用程序......如果可能的話,這將是一個很棒的系統。

每個模塊的代碼應該是自己的目錄,其中包括一個控制器,目錄,模型,視圖,配置等......這樣的擴展了修改CakePHP的核心迷你CakePHP的應用程序內。我認爲這可以通過插件完成,但互連它們並在它們之間傳遞信息的方式似乎並不是最好的方式。

我希望你能理解我的解釋,對不起我的英語。

+0

歡迎來到SO! :)您不應將問題的澄清作爲答案發布,而是請更新您的問題。它也可以讓你的問題顯示*未答覆*,這可能有助於吸引注意力。話雖如此,你在想什麼樣的「互聯」? AFAIK(沒有使用過多的插件),你可以在插件中使用其他插件和[使用'requestAction'進行控制器間通信](http://book.cakephp.org/complete/1111/Plugins#Plugin-Tips-1118) ,所以你錯過的一個具體例子會很好。 – deceze 2010-10-18 01:20:57

1

我在做什麼,因爲我已打算在現在的項目有以下

在我的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的那種水平。如果仔細考慮,可以使用應用程序級別事件來詢問已安裝插件的響應,然後循環執行一組事件以註冊或將信息注入到設置的視圖變量中。

當您使用事件並考慮事件如何與您的應用程序進行通信時,會出現很多問題。

0

最初看起來很困難,但我認爲這是解決這個問題的最佳方案。

您是否爲所有模塊編寫插件?還是你編寫了控制器,模型等內核?和插件內的額外模塊?我在CakePHP中以這種方式工作是很奇怪的。我會嘗試編寫所有模塊,我的意思是一個核心插件,設置插件,模塊插件(管理其他插件),等等......而且我可能會使用bootstraping。

非常感謝您的回答,並對我對問題的錯誤解釋感到抱歉,但是我的想法太籠統了,我無法更好地解釋它。

+0

請使用*評論*評論,而不是*答案*。謝謝。 – deceze 2010-10-18 08:11:16

+0

對不起,我下次再做。謝謝。 – xterico 2010-10-18 10:06:45