簡體   English   中英

具有共享功能的CakePHP多站點文件系統組織

[英]CakePHP multi-site file system organization with shared functions

我在服務器中安裝了CakePHP 1.3多站點安裝。 每個站點都有其自己的文件夾,並且它們都從同一位置加載CakePHP核心庫。 它是這樣的:

  • [cake](cake的核心庫)
  • [網站]
    • [網站1]
      • [app]
      • [插件]
      • [廠商]
      • .htaccess
      • index.php
    • [站點2] (還具有自己的應用程序,插件和供應商文件夾)
    • [站點3] (還具有自己的應用程序,插件和供應商文件夾)
    • 等等

我遇到了很多情況,想實現一些我想在所有應用程序中使用的功能,但到目前為止,我只是在每個站點內復制代碼。 我希望能夠在一處聲明這些函數,並能夠從任何站點調用它們。 我相信供應商可能與此有關,但是我一直在尋找食譜,但我不知道如何在我的情況下使用它。

任何幫助將非常感激!

UPATE

因此,通過查看供應商,在我看來(也許我錯了),如果那些供應商文件中的功能不需要直接與其他CakePHP類(例如Session,Auth,等等)。 我將舉一個例子說明我正在嘗試做的事情,也許這有助於更好地了解我正在嘗試的事情。

每個站點都有其自己的登錄系統(使用cake的Auth )。 我想做的一件事是,當用戶登錄時(調用UsersController中的login()函數),有一個函數對該用戶的用戶名進行一些處理,然后調用Session-> flash ()函數在其中插入一條消息(消息會根據該函數進行的處理而變化)。 因此,此功能需要使用用戶模型和會話模型。

我可以使用供應商來執行此操作,因此我可以在供應商中聲明此功能(即processLogin() ),並且所有站點都可以使用該功能? 如果是這樣,怎么辦? 如果沒有,還有其他方法嗎?

將它們粘貼在蛋糕網站相同級別的供應商文件夾中,並在名稱下使用您選擇的名稱(通常是代理商名稱或其他唯一標識符)隔開。

此處在Cookbook中解釋了如何在CakePHP 1.3中加載供應商文件的示例: http : //book.cakephp.org/1.3/en/view/943/Loading-Vendor-Files

但是,我建議升級到CakePHP 2,並將您的代碼放在lib下的子文件夾中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM