{"id":15041562,"url":"https://github.com/oawu/oaci","last_synced_at":"2025-10-28T01:34:59.188Z","repository":{"id":23120007,"uuid":"26474579","full_name":"oawu/oaci","owner":"oawu","description":null,"archived":false,"fork":false,"pushed_at":"2018-03-29T03:52:42.000Z","size":25786,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-16T17:01:19.032Z","etag":null,"topics":["codeigniter","compass","css","css3","gulp","html","html5","javascript","jquery","npm","oaci","php","php-framework","php7","sass","scss","scss-framework"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oawu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-11T07:37:23.000Z","updated_at":"2017-05-16T10:56:12.000Z","dependencies_parsed_at":"2022-08-21T19:30:23.886Z","dependency_job_id":null,"html_url":"https://github.com/oawu/oaci","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oawu%2Foaci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oawu%2Foaci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oawu%2Foaci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oawu%2Foaci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oawu","download_url":"https://codeload.github.com/oawu/oaci/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228397819,"owners_count":17913540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codeigniter","compass","css","css3","gulp","html","html5","javascript","jquery","npm","oaci","php","php-framework","php7","sass","scss","scss-framework"],"created_at":"2024-09-24T20:46:13.899Z","updated_at":"2025-10-28T01:34:59.138Z","avatar_url":"https://github.com/oawu.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Welcome to OA's CodeIgniter!\n\nThis is OA's framework, It is based on CodeIgniter version 2.1.4!\n\n---\n\n## 聲明\n本作品授權採用 姓名標示-非商業性 2.0 台灣 (CC BY-NC 2.0 TW) 授權，詳見 [http://creativecommons.org/licenses/by-nc/2.0/tw/](http://creativecommons.org/licenses/by-nc/2.0/tw/) \n\n\n## DEMO\n\n\u003ca href=\"https://www.youtube.com/watch?\u0026v=svomGfqxZvg\" target=\"_blank\"\u003e點我 Youtube 觀賞 demo 影片！\u003c/a\u003e  \n\n\u003ca href=\"https://www.youtube.com/watch?\u0026v=svomGfqxZvg\" target=\"_blank\"\u003e\u003cimg width='100%' src=\"http://img.youtube.com/vi/svomGfqxZvg/0.jpg\" alt=\"OACI Blog youtube demo!\" /\u003e\u003c/a\u003e\n\n\n\n## 目錄\n* [簡介](#簡介)\n\n* [快速初始化](#快速初始化)\n\n* [常用指令](#常用指令)\n\t* [create controller](#create-controller)\n\t* [create migration](#create-migration)\n\t* [create model](#create-model)\n\t* [create cell](#create-cell)\n\t* [delete controller](#delete-controller)\n\t* [delete model](#delete-model)\n\t* [delete cell](#delete-cell)\n\t* [migration](#migration)\n\t* [clean cache](#clean-cache)\n\t\n* [初始化指令](#初始化指令)\n\n* [Demo指令](#demo指令)\n\t* [create demo](#create-demo)\n\t* [delete demo](#delete-demo)\n\t\n* [Gulp](#gulp)\n\n* [Compass](#compass)\n\n## 簡介\n這是一個以 CodeIgniter 2.1.4 為基礎版本，將其新增進階功能的一套好用的 framework!  \n\n基本改寫項目如下:\n\n* 匯入並且使用 [PHP ActiveRecord](http://www.phpactiverecord.org/) ORM。\n\t* 可以與 OrmUploader 搭配結合。\n\n* 匯入使用 [Redis](http://redis.io/) cache library。\n\n* \u003ca name=\"back1\"\u003e\u003c/a\u003e匯入使用 OrmUploader 的 library。([註1](#comment1))\n\t* 可搭配 model 使用 ImageUplader、FileUploader 處理上傳表單。\n\t* ImageUplader 可配合使用 ImageGdUtility、ImageImagickUtility 處理圖片的 library。\n\n* \u003ca name=\"back2\"\u003e\u003c/a\u003e匯入使用 cell 的 library。([註2](#comment2))\n\t* 加強有層級結構關係。\n\t* 加強暫存快娶機制。\n\t* 導入可使用 [Redis](http://redis.io/) cache。\n\t\n* Identity library 與 identity helper 的使用。\n\t* 方便管理權限問題。\n\t* Session 處理機制。\n\n* Config 的 library 與應用。\n\t* 加強 CodeIgniter 原生 config 機制。\n\n* Cache file folder 的重新定義。\n\t* 向下延伸 cache 分類資料夾。\n\n* Controller core loading 規則順序的改變。\n\t* 運用 OOP 基本繼承概念定義主要 controller。\n\n* 匯入 OA helper 的功能 function。\n\n* 匯入 可記錄 delay request 的 log 以及 query log。\n\n* 匯入並且可使用 scss。\n\n* 匯入並且可使用 compass, gulp.. 等。\n\n* 匯入 [OA-ElasticaSearch](https://github.com/comdan66/OA-ElasticaSearch) 加入 Elastica Search 的使用以及 command。\n\n\n## 快速初始化\n基本快速地建立起常用資料夾以及檔案，例如 log files、temp folders... 等。\n\n* 請先確保您的 server 可以正常使用 CodeIgniter。\n\n* \u003ca name=\"back3\"\u003e\u003c/a\u003e打開終端機，並且在你的 DocumentRoot([註3](#comment3)) 下，輸入 ```git clone https://github.com/comdan66/oaci.git```。\n\n* 進入資料夾，並且下初始指令，終端機輸入 ```php init db_user db_password db_name```，即完成。  \n(參數 **db_user**、**db_password**、**db_name** 分別代表資料庫的 **使用者名稱**、**密碼**、**資料庫名稱**。)\n\n* 更多初始化指令可以 [點我](#初始化指令)。\n\n![OA's CodeIgniter Init](resource/image/readme/init.png)\n\n## 常用指令\n此版本中已經建立多個快速建置檔案的指令，其中包含如下:\n\n* create\n\t* [controller](#create-controller)\n\t* [migration](#create-migration)\n\t* [model](#create-model)\n\t* [cell](#create-cell)\n\t* search\n\t\n* delete\n\t* [controller](#delete-controller)\n\t* [model](#delete-model)\n\t* [cell](#delete-cell)\n\t* search\n\n* [migration](#migration)\n\n* clean\n\t* [cache](#clean-cache)\n\n* 語法表格\n\t* 新增 - create\n\n\t\t_  |  file  |    type    |      name       |       action\n-----|--------|------------|-----------------|----------------\nphp  | create | controller | controller_name | [site \\| admin \\| delay]\nphp  | create | model      | model_name      | [[(-p | -pic) column_name1, column_name2...] | [(-f | -file) column_name1, column_name2...]]\nphp  | create | migration  | table_name      | [(-a \\| -add) \\| (-e \\| -edit) \\| (-d \\| -delete \\| -del \\| -drop)]\nphp  | create | cell       | cell_name       | [method_name1, method_name2...]\nphp  | create | search     | search_name\n\n\t* 刪除 - delete\n\n\t\t_  |  file  |    type    |      name       |       action\n-----|--------|------------|-----------------|----------------\nphp  | delete | controller | controller_name | [site \\| admin \\| delay]\nphp  | delete | model      | model_name      |\nphp  | delete | cell       | cell_name       |\nphp  | delete | search     | search_name\n\n\t* migration\n\n\t\t_  |   file    |  version\n-----|-----------|--------------------\nphp  | migration | [0 \\| 1 \\| 2 \\|...]\n\n\n\t* 清除 - clean\n\n\t  _  |  file  |    type   |      name       \n-----|--------|-----------|-----------------------------------\nphp  | clean  |   cache   | [cell \\| file \\| model \\| [assets \\| static]]\n\n#### create controller\n基本指令為 ```php create controller controller_name [site | admin | delay]```。\n\n* controller_name 為欲建立的 controller 名稱。\n* [site | admin | delay] 為 controller 形態，主要為這三種，其意思分別為 前台、後台、延遲，分別是繼承不同的 controller，**預設值為 site**。\n* 舉例，若要建立一個名為 test 的前台 controller，則輸入 ```php create controller test site```。\n\n[回常用指令 ↩](#常用指令)\n\n![OA's CodeIgniter Create Controller](resource/image/readme/create_controller.png)\n\n#### create migration\n基本指令為 ```php create migration table_name [(-a | -add) | (-e | -edit) | (-d | -delete | -del | -drop)]```。\n\n* table_name 為要修改的資料表名稱。\n* [(-a | -add) | (-e | -edit) | (-d | -delete | -del | -drop)] 為此修改的主要動作行為，**預設值為 add**。\n* 舉例，若要新增一個資料表，名稱為 test，則輸入 ```php create migration test add```，若要是想對 test 這張資料表做修改，則輸入 ```php create migration test edit```，刪除則是 ```php create migration test del```。\n\n[回常用指令 ↩](#常用指令)\n\n![OA's CodeIgniter Create Migration](resource/image/readme/create_migration.png)\n\n#### create model\n基本指令為 ```[[(-p | -pic) column_name1, column_name2...] | [(-f | -file) column_name1, column_name2...]]```。\n\n* model_name 為欲建立的 model 名稱。\n* [(-p | -pic) column_name1, column_name2...] 為該 model 使用 **OrmImageUploader** 的欄位名稱，**可同時為多個**，**預設值為 null，也就是沒有欄位使用**。\n* [(-f | -file) column_name1, column_name2...] 為該 model 使用 **OrmFileUploader** 的欄位名稱，**可同時為多個**，**預設值為 null，也就是沒有欄位使用**。\n* 舉例，若要建立一個名為 test 的 model，則輸入 ```php create model test```，若 test 有兩個圖片欄位名稱分別為 avatar、cover，則是輸入 ```php create model test -p avatar cover```。\n\n[回常用指令 ↩](#常用指令)\n\n![OA's CodeIgniter Create Model](resource/image/readme/create_model.png)\n\n#### create cell\n基本指令為 ```php create cell cell_name [method_name1, method_name2...]```。\n\n* cell_name 為欲建立的 cell 名稱。\n* [method_name1, method_name2...] 一併新增的 method 名稱，**可同時為多個**，**預設值為 null，也就是預設不新增任何 mothod**。\n* 舉例，若要建立一個名為 test 的 cell，則輸入 ```php create cell test```，若是想一開始就建立名稱為 index 以及 add 的 method，則輸入 ```php create cell test index add```。\n* 特別注意！ 預設的 cache 機制是被隱藏關閉的，如要使用再將註解拿掉即可。\n\n[回常用指令 ↩](#常用指令)\n\n![OA's CodeIgniter Create Cell](resource/image/readme/create_cell.png)\n\n#### delete controller\n基本指令為 ```php delete controller controller_name [site | admin | delay]```。\n\n* controller_name 為欲刪除的 controller 名稱。\n* [site | admin | delay] 為 controller 形態，主要為這三種，其意思分別為 前台、後台、延遲，分別是繼承不同的 controller，**預設值為 site**。\n* 舉例，若要刪除一個名為 test 的前台 controller，則輸入 ```php delete controller test site```。\n\n[回常用指令 ↩](#常用指令)\n\n![OA's CodeIgniter Delete Controller](resource/image/readme/delete_controller.png)\n\n#### delete model\n基本指令為 ```php delete model model_name```。\n\n* model_name 為欲刪除的 model 名稱。\n* 舉例，若要刪除一個名為 test 的 model，則輸入 ```php delete model test```。\n* 特別注意，若是該 model 有引用 OrmImageUploader 的 library，其 third_party 下的相關檔案也會一併移除。\n\n[回常用指令 ↩](#常用指令)\n\n![OA's CodeIgniter Delete Model](resource/image/readme/delete_model.png)\n\n#### delete cell\n基本指令為 ```php delete cell cell_name```。\n\n* cell_name 為欲刪除的 cell 名稱。\n* 舉例，若要刪除一個名為 test 的 cell，則輸入 ```php delete cell test```。\n\n[回常用指令 ↩](#常用指令)\n\n![OA's CodeIgniter Delete Cell](resource/image/readme/delete_cell.png)\n\n#### migration\n基本指令為 ```php migration```。\n\n* 預設會執行到最新的 migration。\n* [0 | 1 | 2 |...] 為指定版本，若是沒有此參數，則**預設值為最新版本**。\n* 舉例，若要更新 migration，則輸入 ```php migration```，若是要降版至第 0 版，則輸入 ```php migration 0```。\n\n[回常用指令 ↩](#常用指令)\n\n![OA's CodeIgniter Migration](resource/image/readme/migration.png)\n\n\n#### clean cache\n基本指令為 ```php clean cache [cell | file | model | [assets | static]]```。\n\n* 預設會執行清除所有 cache，指令只要```php clean cache```。\n* [cell | file | model | [assets | static]] 參數則代表分別要細清除的項目。\n\n[回常用指令 ↩](#常用指令)\n\n![OA's CodeIgniter Clean Cache](resource/image/readme/clean_cache.png)\n\n### 初始化指令\n在一開始建立時會使用到，主要就是處理一些暫存資料夾、資料庫設定檔案..等設定，基本指令為 ```php init [root [password [table [127.0.0.1]]]]```。\n\n* root 為資料庫的 username，**預設值為 root**。\n* password 為資料庫的 password，**預設值為 password**。\n* table 為資料庫的 table，**預設值為 table**。\n* 舉例，若是初始化給予資料庫使用者為 oa，密碼為 1234，資料庫為 oaci，則輸入 ```php init oa 1234 oaci```。\n\n![OA's CodeIgniter Init Command](resource/image/readme/init_command.png)\n\n### Demo指令\n* 此版本也內建 Demo 版本指令，只要一個指令，就可以快速建制一個 CRUD 的版本 Sample!\n\n\t![OA's CodeIgniter Tag List](resource/image/readme/tags.png)\n\n\t![OA's CodeIgniter Event List](resource/image/readme/events.png) \n\n\t![OA's CodeIgniter Edit Event](resource/image/readme/edit_event.png) \n\n* 其主要是分別會建立起 event、attendee、tag、tag_event_map 這四張關係表，借由這四張表去演練相關 model、 controller 範例\n\n* 初步創建完後，migration 會自動更新，所以不必特地去執行 migration 指令。\n\n* Demo 指令分別如下:\n\t* [create demo](#create-demo)。\n\t* [delete demo](#delete-demo)。\n\n#### create demo\n基本指令為 ```php create demo```。\n\n* 主要分別會建立起以下檔案:\n\t* migrations\n\t\t* event\n\t\t* attendee\n\t\t* tag\n\t\t* tag_event_map\n\t* models\n\t\t* Event\n\t\t* Attendee\n\t\t* Tag\n\t\t* TagEventMap\n\t* cells\n\t\t* demo_cells\n\t* controllers\n\t\t* events\n\t\t* tags\n\n[Demo指令 ↩](#demo指令)\n\n![OA's CodeIgniter Create Demo](resource/image/readme/create_demo_with_migration.png)\n\n#### delete demo\n基本指令為 ```php delete demo```。\n\n* 主要分別會刪除以下檔案:\n\t* models\n\t\t* Event\n\t\t* Attendee\n\t\t* Tag\n\t\t* TagEventMap\n\t* cells\n\t\t* demo_cells\n\t* controllers\n\t\t* events\n\t\t* tags\n* 特別注意! migrations 不會刪除，所以可能要特別注意一下！\n\n[Demo指令 ↩](#demo指令)\n\n![OA's CodeIgniter Delete Demo](resource/image/readme/delete_demo.png)\n\n\n### Gulp\n* [gulp](http://gulpjs.com/) 是一套可以運用一些別人寫好的套件工具，跟 [grunt](http://gruntjs.com/) 相似，相關簡介可以參考[此篇](http://fireqqtw.logdown.com/posts/249086-good-helper-of-gulp-automation)。\n* 資料夾目錄在 ```command/gulp/```，使用前請記得移到該目錄並且下 ```npm install .``` 指令初始。\n* 預設 **package.json** 內已初步加入 **gulp**、**gulp-notify**、**gulp-livereload** 三個 module。\n* 使用 gulp 可搭配使用 **livereload** 以便於開發。\n* 目前預設監聽檔案類型是 css、js、html、php。\n\n### Compass\n* [compass](http://compass-style.org/) 是一套可以編輯 sass、scss 的編輯工具，可以加快切板速度並且編譯出較優異的 css。\n* 資料夾目錄在 ```command/compass/```，使用前請記得移到該目錄並且下 ```compass watch``` 即可開始。\n* 所有有關於 compass 的設定可在 ```command/compass/config.rb``` 內設定。\n\n\n---\n\n\u003ca name=\"comment1\"\u003e\u003c/a\u003e註1: OrmImageUploader 主要參考於 Ruby on Rails 的 [carrierwave](https://github.com/carrierwaveuploader/carrierwave)所設計。 [↩](#back1)\n\n\u003ca name=\"comment2\"\u003e\u003c/a\u003e註2: Cell 主要參考於 Ruby on Rails 的 [cells](https://github.com/apotonick/cells) 所設計。 [↩](#back2)\n\n\u003ca name=\"comment3\"\u003e\u003c/a\u003e註3: DocumentRoot 是指 web 的資料夾位置，一般 Mac OSX 系統下的 apache 預設值為 ```/Library/WebServer/Documents/```。 [↩](#back3)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foawu%2Foaci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foawu%2Foaci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foawu%2Foaci/lists"}