Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Introduction to CodeIgniter Framework
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Bo-Yi Wu
November 13, 2011
Programming
600
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to CodeIgniter Framework
2011 Taiwan PHP conference
http://phpconf.tw/2011
Bo-Yi Wu
November 13, 2011
More Decks by Bo-Yi Wu
See All by Bo-Yi Wu
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
1
2.6k
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
2.1k
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
1
410
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
1
560
Agent Skill 是什麼?對軟體產業帶來的變化
appleboy
0
3.9k
用 Claude Code + GitHub Copilot Review 打造 AI 驅動的開發流程
appleboy
0
2.5k
戰略轉變:從建構 AI 代理人到發展可擴展的技能生態系統
appleboy
0
370
The Smart Choice for Command-Line Image Resizing
appleboy
0
85
SSH for GitHub Actions
appleboy
0
580
Other Decks in Programming
See All in Programming
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
1.3k
contenteditable と日本語入力に向き合う
colorful12
0
200
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
310
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
ChromeでローカルLLM
ryu1013
0
140
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
1.1k
Jetpack Compose Mechanisms
skydoves
3
820
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.6k
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Statistics for Hackers
jakevdp
799
230k
Building an army of robots
kneath
307
47k
Ethics towards AI in product and experience design
skipperchong
2
430
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Speed Design
sergeychernyshev
33
2.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
GraphQLとの向き合い方2022年版
quramy
50
15k
Transcript
快速上手 快速上手 CodeIgniter CodeIgniter 吳柏毅 Bo-Yi Wu appleboy http://blog.wu-boy.com/ 2011.11.12
2011 PHP Conference
內容皆採用 創用 CC 姓名標示 相同方式分享 3.0 台灣 授權條款
2011/11/12 PHP Conference 3 $this->load->view('about/me') 瑞昱半導體股份有限公司 Linux Kernel
Driver, Sencha Touch Web App. CodeIgniter 台灣站長 http://codeigniter.org.tw 翻譯線上文件 提交 Patch 給官方 CodeIgniter 個人 Github https://github.com/appleboy
2011/11/12 PHP Conference 4 本投影片適合尚未使用過 Framework 且對於 PHP 已經有些 基礎的
Web Developer
2011/11/12 PHP Conference 5 Why use Framework? 合作方式 (
不管你是團隊還是 Soho) 程式設計師與程式設計師 程式設計師與前端設計師 加速開發 幫你寫好一堆功能模組 ( 分頁 , 驗證碼 , 多國語系 ) 幫你解決安全性問題 ($_GET, $POST ...)
2011/11/12 PHP Conference 6 在 2009 年 1 月 畢業進入資策會的第
1 份工作 CodeIgniter 與我
2011/11/12 PHP Conference 7 為了尋找一套適合同事們 一起共同開發的環境架構 (Zend, Cake, Symfony, Yii...)
2011/11/12 PHP Conference 8 $this->load->view('Why') 在眾多 Framework 選擇下 為什麼要使用 CodeIgniter
2011/11/12 PHP Conference 9 初學者非用 CodeIgniter 的優勢 懶人安裝方法
架構清楚明瞭 繁體中文文件 基礎 MVC 架構 ( 日後可跳往其它 Framework)
2011/11/12 PHP Conference 10 懶人安裝方法
2011/11/12 PHP Conference 11 下載 + 解壓縮 = 安裝完成 適用於任何作業系統
2011/11/12 PHP Conference 12 真的這麼容易安裝 ? 進入下載網址 http://www.codeigniter.org.tw/downloads
解壓縮檔案 unzip CodeIgniter_2.X.X.zip 輸入網址 http://your_host_name/codeigniter/
2011/11/12 PHP Conference 13 $this->load->view('welcome')
2011/11/12 PHP Conference 14 如果安裝失敗呢?
2011/11/12 PHP Conference 15 你還是不要接觸 PHP 會比較好 ( 開玩笑的 )
2011/11/12 PHP Conference 16 CodeIgniter 架構清楚明瞭
2011/11/12 PHP Conference 17 CodeIgniter 目錄 application ( 網站主目錄 )
system (CodeIgniter 核心目錄 ) user_guide (CodeIgniter 使用手冊 ) index.php ( 網站主程式 )
2011/11/12 PHP Conference 18 開發多網站目錄架構 ( 大部份 Framework 做法 )
2011/11/12 PHP Conference 19 多網站目錄架構 system ( 升級版本只需要換此目錄 ) web_01
index.php application web_01 index.php application web_02 index.php application
2011/11/12 PHP Conference 20 簡易清楚繁體中文文件 ( 解決初學者對於英文的排斥 ) http://codeigniter.org.tw/user_guide/
2011/11/12 PHP Conference 21 初學者請直接閱讀一般主題
2011/11/12 PHP Conference 22 必讀資料 一般主題 CodeIgniter URLs
控制器 (Controllers) 檢視 (Views) 模型 (Models) 類別參考 Database 類別 Input 類別 Loader 類別
2011/11/12 PHP Conference 23 進階閱讀 一般主題 • 新增程式庫 (Library)
• 新增核心類別 • Hooks – 擴充核心 • URI 路由 類別參考 • Email 類別 • File Uploading 類別 • Form Validation 類別 • Language 類別 • Output 類別 • Pagination 類別 • Session 類別
2011/11/12 PHP Conference 24 以上就是足以讓大家嘗試的理由 簡單 容易 好上手
2011/11/12 PHP Conference 25 來看看 CodeIgniter 基本 MVC 架構
2011/11/12 PHP Conference 26 Web Server Routing Controller View Model
Layout Database Client Browser MVC Architecture Library Helper Caching
2011/11/12 PHP Conference 27 撰寫第一個 Hello World
2011/11/12 PHP Conference 28 View Controller View (views/welcome.php) <html> <body>
Hello <?php echo $username; ?> </body> </html> Controller (controllers/welcome.php) function welcome($id) { $data[‘username’] = $id; $this->load->view(“welcome”, $data); } Hello Appleboy
2011/11/12 PHP Conference 29 CodeIgniter 功能特性介紹
2011/11/12 PHP Conference 30 自訂 URL 還在用 Apache 模組 mod_rewrite
自訂特殊 URL 嘛?
2011/11/12 PHP Conference 31 CodeIgniter 內建自訂 URL 功能 $route['products/([a-z]+)/(\d+)']
= "$1/id_$2" products/os/1234 呼叫 os controller 傳入參數 id_1234 網站出現重大問題需要停機修復 $route['(:any)'] = "system/fix" $route['.*'] = “system/fix”
2011/11/12 PHP Conference 32 High Performance Framework CodeIgniter 預設不會載入未使用模組 用到時自行載入
2011/11/12 PHP Conference 33 High Performance Framework 載入 Library
$this->load->library(array('email', 'table')); 載入 view $this->load->view('file_name'); 載入 model $this->load->model('model_name'); 載入 helper $this->load->helper('help_name');
2011/11/12 PHP Conference 34 CodeIgniter Cahe System index Caching Routing
Application Controller Cache 存在
2011/11/12 PHP Conference 35 Cache 使用方式 Cache 可以寫在 Controller
任意地方 $this->output->cache(n); n 代表分鐘
2011/11/12 PHP Conference 36 Cache 缺點 當 expire time 尚未過期
網頁資訊一定是舊的
2011/11/12 PHP Conference 37 CodeIgniter Cache 機制 將 time()+n*60
寫入到 cache 檔案最前面 每次 Request 則取出跟 time() 比對時間 若 cache time > time() 直接輸出 cache file 若 cache time < time() 刪除 cache 並且新增 cache 缺點 : 適用於靜態檔案
2011/11/12 PHP Conference 38 如果用在動態檔案呢 ? 官方無提供刪除 cache 檔案函式 請自行
Patch 程式碼 http://goo.gl/03IrZ $this->output->delete_cache('post/12') $this->output->delete_cache('post/list')
2011/11/12 PHP Conference 39 支援簡單 Command Line CodeIgniter 2.x.x 版本支援
Windows, Linux crontab 搭配背景執行處理
2011/11/12 PHP Conference 40 好處 CLI 去執行您的 cron-jobs 而不需要使用
curl 互動式 "tasks" 工作 , 像是動態改變權限、清除 cache … 目錄、執行備份 等。 任意搭配其他程式 , 例如 Perl, C++, Python
2011/11/12 PHP Conference 41 用法 $ php index.php controller method
$ php index.php welcome index
2011/11/12 PHP Conference 42 避免網頁執行到 command line 將 corn-jobs
移出 apache 可執行目錄 用 PHP 判斷,確保瀏覽器不能執行 cron-jobs php_sapi_name() === "cli" defined('STDIN')
2011/11/12 PHP Conference 43 處理 $_POST,$_GET 資料 if ( !
isset($_POST['user'])) $user = FALSE; else $user = $_POST['user']; $user = (! isset($_POST['user'])) ? FALSE : $_POST['user'];
2011/11/12 PHP Conference 44 不需要這麼麻煩 $_POST 資料 $user
= $this->input->post('user'); $_GET 資料 $user = $this->input->get('user'); 一起判斷 $user = $this->input->get_post('user'); 先找 $_POST['user'], 後找 $_GET['user']
2011/11/12 PHP Conference 45 避免 XSS 的攻擊 $user =
$this->input->post('user', TRUE); $user = $this->input->get('user', TRUE); $user = $this->input->get_post('user', TRUE);
2011/11/12 PHP Conference 46 良好的程式設計 善用 === 做判斷
數字請用 intval() 或 (int) 過慮 $id = intavl($id); $id = (int) $id; 用 is_array, is_int, is_bool, is_string 判斷類型
2011/11/12 PHP Conference 47 表單驗證 $this->form_validation->set_rules('username', ' 帳 號
', 'trim|required|min_length[5]|max_length[12]| xss_clean'); $this->form_validation->set_rules('password', ' 密 碼 ', 'trim|required|md5'); $this->form_validation->set_rules('email', ' 電子郵 件 ', 'trim|required|valid_email');
2011/11/12 PHP Conference 48 分頁 $this->load->library('pagination'); $config['base_url'] =
'http://example.com/index.php/test/page/'; $config['total_rows'] = 200; $config['per_page'] = 20; $this->pagination->initialize($config); echo $this->pagination->create_links();
2011/11/12 PHP Conference 49 Email 寄信 多重協定 : Mail
, Sendmail , and SMTP 多重收件人 副本 (CC) 和密件副本 (BCCs) 支援 HTML 或者是純文字 (Plaintext) 郵件 附件檔案
2011/11/12 PHP Conference 50 使用方式 $this->load->library('email'); $this->email->from('
[email protected]
', 'Your
Name'); $this->email->to('
[email protected]
'); $this->email->cc('
[email protected]
'); $this->email->bcc('
[email protected]
'); $this->email->subject('Email Test'); $this->email->message('Testing the email class.'); $this->email->send(); echo $this->email->print_debugger();
2011/11/12 PHP Conference 51 影像縮圖功能 修改影像的尺寸 建立縮圖
影像裁剪 影像旋轉 浮水印 支援 GD/GD2 , NetPBM 以及 ImageMagick
2011/11/12 PHP Conference 52 以上只是一些 CodeIgniter Library 基本介紹 想了解更多功能請上 User
Guide http://goo.gl/7PGnW
2011/11/12 PHP Conference 53 光是 CodeIgniter 內建的功能 還不能滿足您嘛?
2011/11/12 PHP Conference 54 歡迎使用 http://getsparks.org/
2011/11/12 PHP Conference 55 Ruby 有 RubyGems Node.js 有 npm
CodeIgniter 有 sparks What is Sparks?
2011/11/12 PHP Conference 56 What is Sparks? Package Management System
Making Code Easy to Find, Create, and Distribute
2011/11/12 PHP Conference 57 Get Sparks tool Now!! 一行指令就安裝完成 $
php -r "$(curl -fsSL http://getsparks.org/go-sparks)"
2011/11/12 PHP Conference 58 Installing Sparks with the Spark Manager
http://goo.gl/lHmCX $ php tools/spark install -v1.0.4 google-url-shortener
2011/11/12 PHP Conference 59 Load Sparks Library $this->load->spark(google-url-shortener/1.0.4'); $short_url =
$this->google_url_api->shorten($url); echo $url . " => " . $short_url->id . "<br />";
2011/11/12 PHP Conference 60 好用 sparks 介紹 ion_auth http://goo.gl/Au4kM
E-mail 啟動帳號 , 忘記密碼 .. 等 單一帳號多重群組 User/Email 雙重認證選擇 Zend ACL Library 導入權限 搭配 Facebook, Google Auth API 認證 Template http://goo.gl/BN5g6 動態讀取 CSS 或 Javascript
2011/11/12 PHP Conference 61 CodeIgniter 重大改變 2009->2011 版本演進 1.7.x
→ 2.x.x 捨棄 PHP4 效能改善 版本控制 Bitbucket → Github 加速大家貢獻
2011/11/12 PHP Conference 62 如果有任何問題都可以到討論區留言 http://www.codeigniter.org.tw/forum/
2011/11/12 PHP Conference 63 歡迎加入 CodeIgniter 翻譯
2011/11/12 PHP Conference 64 https://github.com/appleboy/PHP-CodeIgniter-Framework-Taiwan 縮址 : http://goo.gl/5CU9N
2011/11/12 PHP Conference 65 Thank You.