」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 ServBay 創建和運行 CakePHP 項目

如何使用 ServBay 創建和運行 CakePHP 項目

發佈於2024-08-01
瀏覽:523

什麼是 CakePHP?

CakePHP 是一個開源 PHP Web 框架,旨在幫助開發人員快速建立 Web 應用程式。它基於 MVC(模型-視圖-控制器)架構,提供強大的工具包來簡化常見的開發任務,例如資料庫互動、表單處理、身份驗證和會話管理。

Image description

CakePHP 的主要特性和優勢

  • 快速開發:提供豐富的程式碼產生工具,幫助開發者快速建立通用的程式碼結構。
  • 靈活強大的ORM:內建ORM(物件關聯映射)層簡化資料庫操作。
  • 安全:具備輸入驗證、CSRF 保護和 SQL 注入防護等多種安全功能。
  • 社群支持:擁有活躍的社群和豐富的插件生態系統。
  • 良好的文件:提供全面的文件和教程,幫助開發者快速入門。

CakePHP適用於從小型應用程式到大型企業系統的項目,使開發人員能夠快速建立高品質的網路應用程式。

使用 ServBay 創建並運行 CakePHP 項目

在本文中,我們將使用ServBay提供的PHP環境來創建並運行一個CakePHP專案。我們將利用 ServBay 的「主機」功能來設定 Web 伺服器並配置專案以透過簡單的步驟進行存取。

NGINX 或 Apache 使用者註意事項

Image description

ServBay 使用 Caddy 作為預設 Web 伺服器。對於從NGINX和Apache遷移到ServBay的用戶,有一些要點需要注意:

  1. 球童配置

ServBay 附帶了預先配置和最佳化的 Caddy。開發者可以透過ServBay的‘Host’功能來管理站點,無需手動修改Caddy設定檔。

  1. 重寫規則和.htaccess

在NGINX和Apache中,開發人員通常會編寫自己的重寫規則和.htaccess檔案來進行網址重寫和其他設定。不過,ServBay 自帶了預先配置的 Caddy 規則,因此開發者通常不需要編寫這些規則,除非有特殊要求。

建立 CakePHP 項目

ServBay建議將網站放在/Applications/ServBay/www目錄下,方便管理。

  1. 安裝 Composer

ServBay 已預先安裝 Composer,因此無需單獨安裝。

  1. 創建 CakePHP 專案

使用Composer建立一個新的CakePHP專案:

   cd /Applications/ServBay/www
   mkdir servbay-cakephp-app
   cd servbay-cakephp-app
   composer create-project --prefer-dist cakephp/app .
  1. 進入專案目錄

導航至新建立的 CakePHP 專案目錄:

   cd /Applications/ServBay/www/servbay-cakephp-app

初始配置

  1. 配置環境變數

在config/app_local.php檔案中,設定資料庫連線資訊和其他環境變數。確保正確設定以下配置:

   'Datasources' => [
       'default' => [
           'host' => '127.0.0.1',
           'username' => 'root',
           'password' => 'password',
           'database' => 'servbay_cakephp_app',
           'url' => env('DATABASE_URL', null),
       ],
   ],

設定網路伺服器

使用 ServBay 的「Host」功能透過 Web 伺服器存取 CakePHP 專案。在 ServBay 的「主機」設定中,新增主機:

  • 名稱:我的第一個 CakePHP 開發網站
  • 網域:servbay-cakephp-test.local
  • 站點類型:PHP
  • PHP版本:選擇8.3
  • 網站根目錄:/Applications/ServBay/www/servbay-cakephp-app/webroot

詳細設定步驟,請參閱[[新增您的第一個網站]]。

新增範例程式碼

在config/routes.php檔案中加入以下程式碼,輸出「Hello ServBay!」:

$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);

在src/Controller/PagesController.php檔案中,加入以下程式碼:

namespace App\Controller;

use Cake\Http\Response;

class PagesController extends AppController
{
    public function display()
    {
        return new Response(['body' => 'Hello ServBay!']);
    }
}

造訪網站

開啟瀏覽器並造訪 https://servbay-cakephp-test.local。您應該會看到頁面輸出 Hello ServBay!.

如果需要更具體的範例,可以造訪官方幫助中心。


有疑問嗎?請查看我們的支援頁面尋求協助。另外,我們熱烈邀請您加入我們的 Discord 社區,在這裡您可以與其他開發人員聯繫、分享見解並尋求支援。

如果您想獲取最新資訊,請關注X(Twitter)和Facebook。

讓我們一起編碼、協作和創作!

版本聲明 本文轉載於:https://dev.to/servbay/how-to-use-servbay-to-create-and-run-a-cakephp-project-ik6?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • Python中嵌套函數與閉包的區別是什麼
    Python中嵌套函數與閉包的區別是什麼
    嵌套函數與python 在python中的嵌套函數不被考慮閉合,因為它們不符合以下要求:不訪問局部範圍scliables to incling scliables在封裝範圍外執行範圍的局部範圍。 make_printer(msg): DEF打印機(): 打印(味精) ...
    程式設計 發佈於2025-04-26
  • 如何解決由於Android的內容安全策略而拒絕加載腳本... \”錯誤?
    如何解決由於Android的內容安全策略而拒絕加載腳本... \”錯誤?
    Unveiling the Mystery: Content Security Policy Directive ErrorsEncountering the enigmatic error "Refused to load the script..." when deployi...
    程式設計 發佈於2025-04-26
  • 可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    [2这里: https://webthemez.com/demo/sticky-multi-header-scroll/index.html </main> <section> { display:grid; grid-template-...
    程式設計 發佈於2025-04-26
  • MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    在兩個條件下插入或更新或更新 solution:的答案在於mysql的插入中...在重複鍵更新語法上。如果不存在匹配行或更新現有行,則此功能強大的功能可以通過插入新行來進行有效的數據操作。如果違反了唯一的密鑰約束。 實現所需的行為,該表必須具有唯一的鍵定義(在這種情況下為'名稱'...
    程式設計 發佈於2025-04-26
  • 我可以將加密從McRypt遷移到OpenSSL,並使用OpenSSL遷移MCRYPT加密數據?
    我可以將加密從McRypt遷移到OpenSSL,並使用OpenSSL遷移MCRYPT加密數據?
    將我的加密庫從mcrypt升級到openssl 問題:是否可以將我的加密庫從McRypt升級到OpenSSL?如果是這樣,如何? 答案:是的,可以將您的Encryption庫從McRypt升級到OpenSSL。 可以使用openssl。 附加說明: [openssl_decrypt()函數要求...
    程式設計 發佈於2025-04-26
  • 如何在GO編譯器中自定義編譯優化?
    如何在GO編譯器中自定義編譯優化?
    在GO編譯器中自定義編譯優化 GO中的默認編譯過程遵循特定的優化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    程式設計 發佈於2025-04-26
  • 在Java中如何為PNG文件添加坐標軸和標籤?
    在Java中如何為PNG文件添加坐標軸和標籤?
    如何用java 在現有png映像中添加軸和標籤的axes和labels如何註釋png文件可能具有挑戰性。與其嘗試可能導致錯誤和不一致的修改,不如建議在圖表創建過程中集成註釋。 使用JFReechArt import java.awt.color; 導入java.awt.eventqueue; 導...
    程式設計 發佈於2025-04-26
  • 如何使用Python理解有效地創建字典?
    如何使用Python理解有效地創建字典?
    在python中,詞典綜合提供了一種生成新詞典的簡潔方法。儘管它們與列表綜合相似,但存在一些顯著差異。 與問題所暗示的不同,您無法為鑰匙創建字典理解。您必須明確指定鍵和值。 For example:d = {n: n**2 for n in range(5)}This creates a dict...
    程式設計 發佈於2025-04-26
  • Python中何時用"try"而非"if"檢測變量值?
    Python中何時用"try"而非"if"檢測變量值?
    使用“ try“ vs.” if”來測試python 在python中的變量值,在某些情況下,您可能需要在處理之前檢查變量是否具有值。在使用“如果”或“ try”構建體之間決定。 “ if” constructs result = function() 如果結果: 對於結果: ...
    程式設計 發佈於2025-04-26
  • 如何實時捕獲和流媒體以進行聊天機器人命令執行?
    如何實時捕獲和流媒體以進行聊天機器人命令執行?
    在開發能夠執行命令的chatbots的領域中,實時從命令執行實時捕獲Stdout,一個常見的需求是能夠檢索和顯示標準輸出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    程式設計 發佈於2025-04-26
  • 為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    使用php dateTime修改月份:發現預期的行為在使用PHP的DateTime類時,添加或減去幾個月可能並不總是會產生預期的結果。正如文檔所警告的那樣,“當心”這些操作的“不像看起來那樣直觀。 考慮文檔中給出的示例:這是內部發生的事情: 現在在3月3日添加另一個月,因為2月在2001年只有2...
    程式設計 發佈於2025-04-26
  • 在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    mysql-python安裝錯誤:“ mysql_config找不到”“ 由於缺少MySQL開發庫而出現此錯誤。解決此問題,建議在Ubuntu上使用該分發的存儲庫。使用以下命令安裝Python-MysqldB: sudo apt-get安裝python-mysqldb sudo pip in...
    程式設計 發佈於2025-04-26
  • 如何正確使用與PDO參數的查詢一樣?
    如何正確使用與PDO參數的查詢一樣?
    在pdo 中使用類似QUERIES在PDO中的Queries時,您可能會遇到類似疑問中描述的問題:此查詢也可能不會返回結果,即使$ var1和$ var2包含有效的搜索詞。錯誤在於不正確包含%符號。 通過將變量包含在$ params數組中的%符號中,您確保將%字符正確替換到查詢中。沒有此修改,PD...
    程式設計 發佈於2025-04-26
  • 解決MySQL錯誤1153:數據包超出'max_allowed_packet'限制
    解決MySQL錯誤1153:數據包超出'max_allowed_packet'限制
    mysql錯誤1153:故障排除比“ max_allowed_pa​​cket” bytes 更大的數據包,用於面對陰謀mysql錯誤1153,同時導入數據capase doft a Database dust?讓我們深入研究罪魁禍首並探索解決方案以糾正此問題。 理解錯誤此錯誤表明在導入過程中...
    程式設計 發佈於2025-04-26
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-04-26

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3