FuelPHP 系列 ------ Oil 命令

来源:https://www.cnblogs.com/rendd/archive/2018/04/26/8955810.html
-Advertisement-
Play Games

之前用過 Laravel,框架自帶的 artisan 命令,用得爽到爆。現在工作需要,要學習 FuelPHP,首先看到框架目錄結構,有 coposer.json 框架可以用 composer 管理,一定也有自己的命令工具。 對於新手來說,不妨先用命令自動生成文件,然後看這些生成的文件瞭解基本的 CR ...


 

之前用過 Laravel,框架自帶的 artisan 命令,用得爽到爆。現在工作需要,要學習 FuelPHP,首先看到框架目錄結構,有 coposer.json 框架可以用 composer 管理,一定也有自己的命令工具。

對於新手來說,不妨先用命令自動生成文件,然後看這些生成的文件瞭解基本的 CRUD 操作。

一、準備工作

  1、要用 oil 命令需要先安裝 composer

    看官網自行安裝 https://getcomposer.org/download/

  2、正確連接並創建資料庫

    /fuel/app/config/development/db.php 裡面進行資料庫配置

    下麵是 /fuel/app/ 目錄結構

    

  3、打開命令編輯工具,並切換到框架根目錄。

二、即使本地沒有伺服器,也可以訪問網站的高級命令 server

    php oil server  

  

  現在訪問 http://localhost:8000 就可以了,但這個狀態需要一直保持(另外打開一個視窗執行下麵的其他命令)。Ctrl-C 可退出。

三、創建 MVC 及其他所需文件的最常用命令 generate

  先看看可以創建哪些文件,g 是 generate 的縮寫。

   php oil g help 

  

  1、scaffold 腳手架,顧名思義,一條命令可以創建一系列 MVC。簡單的 CRUD 操作,只需要一條命令,不需要自己寫任何代碼。

    例:創建 article 的 MVC 系列文件,title、content、author、reading 四個欄位。

     php oil g scaffold article title:varchar content:text author:varchar reading:int 

    

    已經生成了這麼多文件,包括 controller、model、view、migration 文件,可以看看代碼具體的增刪改查操作。(由於還沒有生成表,所以數據不能入庫,繼續往下看。)

   2、controller 

    例:創建 ccontroller category 有四個方法,index、store、update、delete

     php oil g controller category index store update delete 

    

    生成控制器文件以及和方法對應的四個視圖文件。

    如果想放到 controller 目錄下的 blog 目錄下,php oil g controller blog/category index store update delete

  3、model

    例:創建 model category 有 name 欄位

     php oil g model category name:varchar 

    

    生成 model 及資料庫相關的 migration 文件

    註:如果不需要 migration,後面加參數

     php oil g model tag name:varchar --no-migration 

     

    如果需要軟刪除,則需要 model_soft

     php oil g model post title:varchar[50] user_id:int --soft-delete 

  4、presenter

     php oil g controller post action1 action2 --with-presenter 

    

  5、migration

    ♦ 執行文件遷移,及用 migration 文件自動創建表

       php oil refine migrate 

      資料庫會有一張表叫 migration ,裡面記錄了所欲遷移的文件。

    ♦ 生成 migration 文件,或對錶進行操作,總之文件名要顧名思義。

php oil generate migration create_users name:text email:string[50] password:string[125]  // 創建 users 表
php oil generate migration rename_table_users_to_accounts                    // 修改 users 表名為 accounts
php oil generate migration add_bio_to_accounts bio:text                     // 添加欄位 bio
php oil generate migration delete_bio_from_accounts bio:text                  // 刪除欄位 bio
php oil generate migration rename_field_name_to_username_in_accounts              // 修改欄位名
php oil generate migration drop_accounts

  6、task

    php oil g task newtask cmd1 cmd2 

   

  7、config

   ♦  php oil g config test hello:world  生成普通配置文件 test.php

    

   ♦  php oil g config package  生成 package.php

   ♦  php oil g config form --overwrite   重寫 core/config/ 目錄下的配置文件。

  8、module

     php oil g module blog  在 框架根目錄會多一個 blog 目錄。

四、執行一些任務的簡單命令 refine

  同樣 help 看一下可執行的任務

   php oil refine help 

  

  上面紅框的命令都可以試試看哦,有一些很有趣的效果

  

五、安裝或卸載包文件的命令 package

  包文件資源在配置文件 package.php 中管理

   php oil package install test-package   安裝 test-package 包

   php oil package uninstall test-package  卸載包文件

六、方便隨時執行 php 的快捷命令 console

   php oil console  會進入 PHP 環境中,隨意寫 php 代碼

   

七、可進行單元測試的命令 test

  用於 unit test,等用過後再來補充。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先請原諒本文標題取的有點大,但並非為了嘩眾取寵。本文取這個標題主要有3個原因,這也是寫作本文的初衷: (1)目前國內幾乎搜索不到全面講解如何搭建前後端分離框架的文章,講前後端分離框架思想的就更少了,而筆者希望在本文中能夠全面、詳細地闡述我們團隊在前後端分離的摸索中所得到的搭建思路、最佳實踐以及架構 ...
  • [Java] Design Pattern:Code Shape manage your code shape Code Shape Design Pattern Here I will introduce a design pattern: Code Shape。 It's fine that y ...
  • 前幾天寫了一篇 Java 8 即將在 2019 年停止免費向企業提供更新的文章,企圖迫使用戶向更新一代的 Java 版本升級,但讓人遺憾的是,小編今天收到了 Oracle Java 版本的升級推送,裝完居然是 Java 10 !!!! 很意外,為什麼直接從 Java 8 升級到了 Java 10,去 ...
  • 手把手教你寫網路爬蟲(8) 作者:拓海 摘要:從零開始寫爬蟲,初學者的速成指南! 封面: 字元編解碼是爬蟲里必學的一項知識,在我們的爬蟲生涯中早晚會爬到亂碼的網頁,與其遇到時驚慌失措,不如早學早好,徹底避免亂碼問題。 字元編碼簡介 什麼是字元集 在介紹字元編碼之前,我們先瞭解下什麼是字元集。 字元( ...
  • How to: Debug a Release Build You can debug a release build of an application. To debug a release build Open the Property Pages dialog box for the pro ...
  • Lesson Nine 2018-04-27 02:05:08 this: 1.可以用來修飾屬性、方法、構造器 2.this理解為當前對象或當前正在創建的對象.比如:this.name,this.show(); 1 class TriAngle{ 2 private double base; 3 p ...
  • 如果不加單引號會使得除變數和int類型的值不能傳遞 轉發和重定向的區別 轉發需要填寫完整路徑,重定向只需要寫相對路徑。原因是重定向是一次請求之內已經定位到了伺服器端,轉發則需要兩次請求每次都需要完整的路徑。 Request和response在解決中文亂碼時的區別 Request只需要規定編碼集,而r ...
  • 不知道你有沒有發現現在身邊學java的人越來越越多呢?其實在小編高考的時候,身邊選電腦專業的同學非常少。別誤會,就是幾年前而已。可能是因為小編是小縣城的,身邊很多人甚至都不知道有程式員這一職業。現在學java的人越來越多,學好java真的很有錢途嗎? 為什麼學java的人越來越多? 小編認為一個是 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...