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
Bo-Yi Wu
November 13, 2011
Programming
590
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.3k
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
1.8k
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
1
370
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
1
500
Agent Skill 是什麼?對軟體產業帶來的變化
appleboy
0
3.7k
用 Claude Code + GitHub Copilot Review 打造 AI 驅動的開發流程
appleboy
0
2.4k
戰略轉變:從建構 AI 代理人到發展可擴展的技能生態系統
appleboy
0
360
The Smart Choice for Command-Line Image Resizing
appleboy
0
80
SSH for GitHub Actions
appleboy
0
500
Other Decks in Programming
See All in Programming
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
190
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.4k
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
260
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
380
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
160
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
350
速習iPhone Duo対応
yuukiw00w
1
710
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
140
スマート反転とウェブアクセシビリティ
camiha
0
210
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
560
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
530
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Statistics for Hackers
jakevdp
799
230k
A designer walks into a library…
pauljervisheath
211
25k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
480
Music & Morning Musume
bryan
48
7.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Designing Powerful Visuals for Engaging Learning
tmiket
1
570
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
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.