# 開發範例相關 ## 後台欄目列表增刪查改 ### A. 前置作業 組內開發同事需要先行定義有功能的名稱與程式中的命名空間,例如: 上層選單中文名稱: 動物園管理 上層選單英文名稱: zooManagement 下層選單中文名稱: 老虎管理 下層選單英文名稱: tigerManagement 因此整個範例的命名如下(或參照後續介紹): 1. 下層選單路由: 上層選單英文名稱/下層選單英文名稱 2. 資料表名稱: 上層選單英文名稱_下層選單英文名稱 需要先以瀏覽器登入後台 System ManagementManage Functions > Add > 1. Menu Icon Class Name: fa fa-cog 2. Menu Name: 動物園管理 3. Valid: 打勾 4. Orders: 任意給一個數字 System ManagementManage Functions > 動物園管理 > Details > Add > 1. Function Name: 老虎管理 2. Function Link(Route or Controller Name): zooManagement/tigerManagement 3. Function Description: 任意給定一個敘述 4. Valid: 打勾 5. Orders: 任意給一個數字 System ManagementManage Groups > 選定自己所屬群組(或新增) > Edit > 1. Functions > Unassign > 選擇老虎管理 > 按下 Enter > 老虎管理落入 Assigned ### B. 資料表 先利用 phpmyadmin 或者開發環境的指令介面創建範例資料表,注意命名規則: ``` CREATE TABLE `ringeProject`.`zooManagement_tigerManagement` ( `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '自增量' , `tigerName` VARCHAR(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '老虎名字', PRIMARY KEY (`id`) ) ENGINE = MyISAM CHARSET = utf8 COLLATE utf8_unicode_ci COMMENT = '動物園管理_老虎管理'; ``` 創建 model 檔案,請參照 app/Models/ZooManagement/TigerManagement.php 這隻檔案 ### C. 實際開發 需要因此新增或修改的檔案如下(請注意命名方式): 1. 新增 app/Models/ZooManagement/TigerManagement.php 也就是剛才提到的 model 2. 修改 routes/web.php 需要加入相關的路由,注意裡面註解的範例部分,負責路由 3. 新增 app/Http/Controllers/Backend/ZooManagement/TigerManagementController.php 注意裡面的所有註解,負責控制器 4. 新增 app/Http/Services/Backend/ZooManagement/TigerManagementService.php 注意裡面的所有註解,負責業務邏輯 5. 新增 resources/views/admin/ZooManagement/TigerManagement.blade.php 注意裡面的所有註解,負責列表頁 6. 新增 resources/views/admin/ZooManagement/TigerManagementEdit.blade.php 注意裡面的所有註解,負責新增或編輯頁 ### D. 注意事項 1. 網址路由中的大小寫,可能會因為佈署環境的關係(例如 Windows 系統)導致大小寫被視為相同而失效,屆時的調整方向可以從伺服器作業系統設定,或者修改本地程式碼入手。 ## 腳本 ### A. 實際開發 需要因此新增或修改的檔案如下(請注意命名方式): 1. 修改 app/Console/Kernel.php 需要加入相關的路由,注意裡面註解的範例部分,負責路由 2. 新增 app/Console/Commands/Lion.php 負責腳本本身 ### B. 除錯 請確認已做好佈署文件中的除錯設定,並且視情況修改以下的指令並執行 cd /var/www/html/ringeProject # 切換到專案資料夾 export XDEBUG_CONFIG="idekey=PHPSTORM remote_host=127.0.0.1 remote_port=7900" # 設置除錯變量 export PHP_IDE_CONFIG="serverName=ringeProject" # 設置除錯變量 php artisan zoo:lion # 啟動腳本 ### C. 佈署 crontab -e # 編輯排程表加入以下指令(並視情況修改執行時間點,專案資料夾,重導向紀錄內容的位置) ``` * * * * * cd /var/www/html/ringeProject;php artisan zoo:lion > /tmp/test.log; ``` /etc/init.d/cron restart # 重啟排程服務