Skip to content

oawu/oaci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to OA's CodeIgniter!

This is OA's framework, It is based on CodeIgniter version 2.1.4!


聲明

本作品授權採用 姓名標示-非商業性 2.0 台灣 (CC BY-NC 2.0 TW) 授權,詳見 http://creativecommons.org/licenses/by-nc/2.0/tw/

DEMO

點我 Youtube 觀賞 demo 影片!

OACI Blog youtube demo!

目錄

簡介

這是一個以 CodeIgniter 2.1.4 為基礎版本,將其新增進階功能的一套好用的 framework!

基本改寫項目如下:

  • 匯入並且使用 PHP ActiveRecord ORM。

    • 可以與 OrmUploader 搭配結合。
  • 匯入使用 Redis cache library。

  • 匯入使用 OrmUploader 的 library。(註1)

    • 可搭配 model 使用 ImageUplader、FileUploader 處理上傳表單。
    • ImageUplader 可配合使用 ImageGdUtility、ImageImagickUtility 處理圖片的 library。
  • 匯入使用 cell 的 library。(註2)

    • 加強有層級結構關係。
    • 加強暫存快娶機制。
    • 導入可使用 Redis cache。
  • Identity library 與 identity helper 的使用。

    • 方便管理權限問題。
    • Session 處理機制。
  • Config 的 library 與應用。

    • 加強 CodeIgniter 原生 config 機制。
  • Cache file folder 的重新定義。

    • 向下延伸 cache 分類資料夾。
  • Controller core loading 規則順序的改變。

    • 運用 OOP 基本繼承概念定義主要 controller。
  • 匯入 OA helper 的功能 function。

  • 匯入 可記錄 delay request 的 log 以及 query log。

  • 匯入並且可使用 scss。

  • 匯入並且可使用 compass, gulp.. 等。

  • 匯入 OA-ElasticaSearch 加入 Elastica Search 的使用以及 command。

快速初始化

基本快速地建立起常用資料夾以及檔案,例如 log files、temp folders... 等。

  • 請先確保您的 server 可以正常使用 CodeIgniter。

  • 打開終端機,並且在你的 DocumentRoot(註3) 下,輸入 git clone https://github.com/comdan66/oaci.git

  • 進入資料夾,並且下初始指令,終端機輸入 php init db_user db_password db_name,即完成。
    (參數 db_userdb_passworddb_name 分別代表資料庫的 使用者名稱密碼資料庫名稱。)

  • 更多初始化指令可以 點我

OA's CodeIgniter Init

常用指令

此版本中已經建立多個快速建置檔案的指令,其中包含如下:

  • create

  • delete

  • migration

  • clean

  • 語法表格

    • 新增 - create

      _ | file | type | name | action -----|--------|------------|-----------------|---------------- php | create | controller | controller_name | [site | admin | delay] php | create | model | model_name | [[(-p | -pic) column_name1, column_name2...] | [(-f | -file) column_name1, column_name2...]] php | create | migration | table_name | [(-a | -add) | (-e | -edit) | (-d | -delete | -del | -drop)] php | create | cell | cell_name | [method_name1, method_name2...] php | create | search | search_name

    • 刪除 - delete

      _ | file | type | name | action -----|--------|------------|-----------------|---------------- php | delete | controller | controller_name | [site | admin | delay] php | delete | model | model_name | php | delete | cell | cell_name | php | delete | search | search_name

    • migration

      _ | file | version -----|-----------|-------------------- php | migration | [0 | 1 | 2 |...]

    • 清除 - clean

      _ | file | type | name
      -----|--------|-----------|----------------------------------- php | clean | cache | [cell | file | model | [assets | static]]

create controller

基本指令為 php create controller controller_name [site | admin | delay]

  • controller_name 為欲建立的 controller 名稱。
  • [site | admin | delay] 為 controller 形態,主要為這三種,其意思分別為 前台、後台、延遲,分別是繼承不同的 controller,預設值為 site
  • 舉例,若要建立一個名為 test 的前台 controller,則輸入 php create controller test site

回常用指令 ↩

OA's CodeIgniter Create Controller

create migration

基本指令為 php create migration table_name [(-a | -add) | (-e | -edit) | (-d | -delete | -del | -drop)]

  • table_name 為要修改的資料表名稱。
  • [(-a | -add) | (-e | -edit) | (-d | -delete | -del | -drop)] 為此修改的主要動作行為,預設值為 add
  • 舉例,若要新增一個資料表,名稱為 test,則輸入 php create migration test add,若要是想對 test 這張資料表做修改,則輸入 php create migration test edit,刪除則是 php create migration test del

回常用指令 ↩

OA's CodeIgniter Create Migration

create model

基本指令為 [[(-p | -pic) column_name1, column_name2...] | [(-f | -file) column_name1, column_name2...]]

  • model_name 為欲建立的 model 名稱。
  • [(-p | -pic) column_name1, column_name2...] 為該 model 使用 OrmImageUploader 的欄位名稱,可同時為多個預設值為 null,也就是沒有欄位使用
  • [(-f | -file) column_name1, column_name2...] 為該 model 使用 OrmFileUploader 的欄位名稱,可同時為多個預設值為 null,也就是沒有欄位使用
  • 舉例,若要建立一個名為 test 的 model,則輸入 php create model test,若 test 有兩個圖片欄位名稱分別為 avatar、cover,則是輸入 php create model test -p avatar cover

回常用指令 ↩

OA's CodeIgniter Create Model

create cell

基本指令為 php create cell cell_name [method_name1, method_name2...]

  • cell_name 為欲建立的 cell 名稱。
  • [method_name1, method_name2...] 一併新增的 method 名稱,可同時為多個預設值為 null,也就是預設不新增任何 mothod
  • 舉例,若要建立一個名為 test 的 cell,則輸入 php create cell test,若是想一開始就建立名稱為 index 以及 add 的 method,則輸入 php create cell test index add
  • 特別注意! 預設的 cache 機制是被隱藏關閉的,如要使用再將註解拿掉即可。

回常用指令 ↩

OA's CodeIgniter Create Cell

delete controller

基本指令為 php delete controller controller_name [site | admin | delay]

  • controller_name 為欲刪除的 controller 名稱。
  • [site | admin | delay] 為 controller 形態,主要為這三種,其意思分別為 前台、後台、延遲,分別是繼承不同的 controller,預設值為 site
  • 舉例,若要刪除一個名為 test 的前台 controller,則輸入 php delete controller test site

回常用指令 ↩

OA's CodeIgniter Delete Controller

delete model

基本指令為 php delete model model_name

  • model_name 為欲刪除的 model 名稱。
  • 舉例,若要刪除一個名為 test 的 model,則輸入 php delete model test
  • 特別注意,若是該 model 有引用 OrmImageUploader 的 library,其 third_party 下的相關檔案也會一併移除。

回常用指令 ↩

OA's CodeIgniter Delete Model

delete cell

基本指令為 php delete cell cell_name

  • cell_name 為欲刪除的 cell 名稱。
  • 舉例,若要刪除一個名為 test 的 cell,則輸入 php delete cell test

回常用指令 ↩

OA's CodeIgniter Delete Cell

migration

基本指令為 php migration

  • 預設會執行到最新的 migration。
  • [0 | 1 | 2 |...] 為指定版本,若是沒有此參數,則預設值為最新版本
  • 舉例,若要更新 migration,則輸入 php migration,若是要降版至第 0 版,則輸入 php migration 0

回常用指令 ↩

OA's CodeIgniter Migration

clean cache

基本指令為 php clean cache [cell | file | model | [assets | static]]

  • 預設會執行清除所有 cache,指令只要php clean cache
  • [cell | file | model | [assets | static]] 參數則代表分別要細清除的項目。

回常用指令 ↩

OA's CodeIgniter Clean Cache

初始化指令

在一開始建立時會使用到,主要就是處理一些暫存資料夾、資料庫設定檔案..等設定,基本指令為 php init [root [password [table [127.0.0.1]]]]

  • root 為資料庫的 username,預設值為 root
  • password 為資料庫的 password,預設值為 password
  • table 為資料庫的 table,預設值為 table
  • 舉例,若是初始化給予資料庫使用者為 oa,密碼為 1234,資料庫為 oaci,則輸入 php init oa 1234 oaci

OA's CodeIgniter Init Command

Demo指令

  • 此版本也內建 Demo 版本指令,只要一個指令,就可以快速建制一個 CRUD 的版本 Sample!

    OA's CodeIgniter Tag List

    OA's CodeIgniter Event List

    OA's CodeIgniter Edit Event

  • 其主要是分別會建立起 event、attendee、tag、tag_event_map 這四張關係表,借由這四張表去演練相關 model、 controller 範例

  • 初步創建完後,migration 會自動更新,所以不必特地去執行 migration 指令。

  • Demo 指令分別如下:

create demo

基本指令為 php create demo

  • 主要分別會建立起以下檔案:
    • migrations
      • event
      • attendee
      • tag
      • tag_event_map
    • models
      • Event
      • Attendee
      • Tag
      • TagEventMap
    • cells
      • demo_cells
    • controllers
      • events
      • tags

Demo指令 ↩

OA's CodeIgniter Create Demo

delete demo

基本指令為 php delete demo

  • 主要分別會刪除以下檔案:
    • models
      • Event
      • Attendee
      • Tag
      • TagEventMap
    • cells
      • demo_cells
    • controllers
      • events
      • tags
  • 特別注意! migrations 不會刪除,所以可能要特別注意一下!

Demo指令 ↩

OA's CodeIgniter Delete Demo

Gulp

  • gulp 是一套可以運用一些別人寫好的套件工具,跟 grunt 相似,相關簡介可以參考此篇
  • 資料夾目錄在 command/gulp/,使用前請記得移到該目錄並且下 npm install . 指令初始。
  • 預設 package.json 內已初步加入 gulpgulp-notifygulp-livereload 三個 module。
  • 使用 gulp 可搭配使用 livereload 以便於開發。
  • 目前預設監聽檔案類型是 css、js、html、php。

Compass

  • compass 是一套可以編輯 sass、scss 的編輯工具,可以加快切板速度並且編譯出較優異的 css。
  • 資料夾目錄在 command/compass/,使用前請記得移到該目錄並且下 compass watch 即可開始。
  • 所有有關於 compass 的設定可在 command/compass/config.rb 內設定。

註1: OrmImageUploader 主要參考於 Ruby on Rails 的 carrierwave所設計。

註2: Cell 主要參考於 Ruby on Rails 的 cells 所設計。

註3: DocumentRoot 是指 web 的資料夾位置,一般 Mac OSX 系統下的 apache 預設值為 /Library/WebServer/Documents/