Phpconf 2011 introduction_to_codeigniter
Upcoming SlideShare
Loading in...5
×
 

Phpconf 2011 introduction_to_codeigniter

on

  • 8,209 views

http://phpconf.tw/2011

http://phpconf.tw/2011

快速上手 CodeIgniter
吳柏毅 (Bo-Yi Wu)/appleboy
Introduction to CodeIgniter

Statistics

Views

Total Views
8,209
Views on SlideShare
4,679
Embed Views
3,530

Actions

Likes
14
Downloads
138
Comments
1

14 Embeds 3,530

http://blog.wu-boy.com 3396
http://10.0.1.42 39
http://feeds2.feedburner.com 31
http://jerry54010.kd.io 22
http://www.techgig.com 13
http://192.168.1.59 7
http://us-w1.rockmelt.com 6
http://127.0.0.1 5
http://localhost 4
http://webcache.googleusercontent.com 2
http://pinterest.com 2
http://115.112.206.131 1
http://feeds.feedburner.com 1
http://news.google.com 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 多謝。請問您有無創建相關的QQ群?學習CI中!多謝您的指導!
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Phpconf 2011 introduction_to_codeigniter Phpconf 2011 introduction_to_codeigniter Presentation Transcript

  • 快速上手 CodeIgniter 吳柏毅 Bo-Yi Wu appleboy http://blog.wu-boy.com/ 2011.11.12 2011 PHP Conference
  • 內容皆採用 創用 CC 姓名標示相同方式分享 3.0 台灣 授權條款
  • $this->load->view(about/me)  瑞昱半導體股份有限公司  Linux Kernel Driver, Sencha Touch Web App.  CodeIgniter 台灣站長 http://codeigniter.org.tw  翻譯線上文件  提交 Patch 給官方 CodeIgniter  個人 Github  https://github.com/appleboy2011/11/12 PHP Conference 3
  • 本投影片適合尚未使用過Framework 且對於 PHP 已經有些 基礎的 Web Developer2011/11/12 PHP Conference 4
  • Why use Framework?  合作方式 ( 不管你是團隊還是 Soho)  程式設計師與程式設計師  程式設計師與前端設計師  加速開發  幫你寫好一堆功能模組 ( 分頁 , 驗證碼 , 多國語系 )  幫你解決安全性問題 ($_GET, $POST ...)2011/11/12 PHP Conference 5
  • CodeIgniter 與我 在 2009 年 1 月 畢業進入資策會的第 1 份工作2011/11/12 PHP Conference 6
  • 為了尋找一套適合同事們 一起共同開發的環境架構 (Zend, Cake, Symfony, Yii...)2011/11/12 PHP Conference 7
  • $this->load->view(Why) 在眾多 Framework 選擇下 為什麼要使用 CodeIgniter2011/11/12 PHP Conference 8
  • 初學者非用 CodeIgniter 的優勢  懶人安裝方法  架構清楚明瞭  繁體中文文件  基礎 MVC 架構 ( 日後可跳往其它 Framework)2011/11/12 PHP Conference 9
  • 懶人安裝方法2011/11/12 PHP Conference 10
  • 下載 + 解壓縮 = 安裝完成 適用於任何作業系統2011/11/12 PHP Conference 11
  • 真的這麼容易安裝 ?  進入下載網址  http://www.codeigniter.org.tw/downloads  解壓縮檔案  unzip CodeIgniter_2.X.X.zip  輸入網址  http://your_host_name/codeigniter/2011/11/12 PHP Conference 12
  • $this->load->view(welcome)2011/11/12 PHP Conference 13
  • 如果安裝失敗呢?2011/11/12 PHP Conference 14
  • 你還是不要接觸 PHP 會比較好 ( 開玩笑的 )2011/11/12 PHP Conference 15
  • CodeIgniter 架構清楚明瞭2011/11/12 PHP Conference 16
  • CodeIgniter 目錄 application ( 網站主目錄 ) system (CodeIgniter 核心目錄 ) user_guide (CodeIgniter 使用手冊 ) index.php ( 網站主程式 )2011/11/12 PHP Conference 17
  • 開發多網站目錄架構 ( 大部份 Framework 做法 )2011/11/12 PHP Conference 18
  • 多網站目錄架構 system ( 升級版本只需要換此目錄 ) web_01 application index.php web_02 application index.php2011/11/12 PHP Conference 19
  • 簡易清楚繁體中文文件 ( 解決初學者對於英文的排斥 ) http://codeigniter.org.tw/user_guide/2011/11/12 PHP Conference 20
  • 初學者請直接閱讀一般主題2011/11/12 PHP Conference 21
  • 必讀資料  一般主題  類別參考  CodeIgniter URLs  Database 類別  控制器 (Controllers)  Input 類別  檢視 (Views)  Loader 類別  模型 (Models)2011/11/12 PHP Conference 22
  • 進階閱讀  一般主題  類別參考 ● 新增程式庫 (Library) ● Email 類別 ● 新增核心類別 ● File Uploading 類別 ● Hooks – 擴充核心 ● Form Validation 類別 ● URI 路由 ● Language 類別 ● Output 類別 ● Pagination 類別 ● Session 類別2011/11/12 PHP Conference 23
  • 以上就是足以讓大家嘗試的理由 簡單 容易 好上手2011/11/12 PHP Conference 24
  • 來看看 CodeIgniter 基本 MVC 架構2011/11/12 PHP Conference 25
  • MVC Architecture Database Layout Model Library Helper View Controller Routing Caching Web Server2011/11/12 Client Browser PHP Conference 26
  • 撰寫第一個 Hello World2011/11/12 PHP Conference 27
  • Hello Appleboy View (views/welcome.php) View <html> <body> Hello <?php echo $username; ?> </body> </html> Controller (controllers/welcome.php) function welcome($id) {Controller $data[‘username’] = $id; $this->load->view(“welcome”, $data); }2011/11/12 PHP Conference 28
  • CodeIgniter 功能特性介紹2011/11/12 PHP Conference 29
  • 自訂 URL 還在用 Apache 模組 mod_rewrite 自訂特殊 URL 嘛?2011/11/12 PHP Conference 30
  • 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 31
  • High Performance Framework CodeIgniter 預設不會載入未使用模組 用到時自行載入2011/11/12 PHP Conference 32
  • 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 33
  • CodeIgniter Cahe System index Cache 存在 Routing Caching Application Controller2011/11/12 PHP Conference 34
  • Cache 使用方式  Cache 可以寫在 Controller 任意地方  $this->output->cache(n);  n 代表分鐘2011/11/12 PHP Conference 35
  • Cache 缺點 當 expire time 尚未過期 網頁資訊一定是舊的2011/11/12 PHP Conference 36
  • CodeIgniter Cache 機制 將 time()+n*60 寫入到 cache 檔案最前面 每次 Request 則取出跟 time() 比對時間  若 cache time > time() 直接輸出 cache file  若 cache time < time() 刪除 cache 並且新增 cache 缺點 : 適用於靜態檔案 2011/11/12 PHP Conference 37
  • 如果用在動態檔案呢 ? 官方無提供刪除 cache 檔案函式 請自行 Patch 程式碼 http://goo.gl/03IrZ $this->output->delete_cache(post/12) $this->output->delete_cache(post/list)2011/11/12 PHP Conference 38
  • 支援簡單 Command Line CodeIgniter 2.x.x 版本支援 Windows, Linux crontab 搭配背景執行處理2011/11/12 PHP Conference 39
  • 好處  CLI 去執行您的 cron-jobs 而不需要使用 curl  互動式 "tasks" 工作 , 像是動態改變權限、清除 cache 目錄、執行備份…等。  任意搭配其他程式 , 例如 Perl, C++, Python2011/11/12 PHP Conference 40
  • 用法$ php index.php controller method$ php index.php welcome index2011/11/12 PHP Conference 41
  • 避免網頁執行到 command line  將 corn-jobs 移出 apache 可執行目錄  用 PHP 判斷,確保瀏覽器不能執行 cron-jobs  php_sapi_name() === "cli"  defined(STDIN)2011/11/12 PHP Conference 42
  • 處理 $_POST,$_GET 資料 if ( ! isset($_POST[user])) $user = FALSE; else $user = $_POST[user];$user = (! isset($_POST[user])) ? FALSE : $_POST[user]; 2011/11/12 PHP Conference 43
  • 不需要這麼麻煩  $_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 44
  • 避免 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 45
  • 良好的程式設計  善用 === 做判斷  數字請用 intval() 或 (int) 過慮  $id = intavl($id);  $id = (int) $id;  用 is_array, is_int, is_bool, is_string 判斷類型2011/11/12 PHP Conference 46
  • 表單驗證 $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 47
  • 分頁  $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 48
  • Email 寄信  多重協定 : Mail , Sendmail , and SMTP  多重收件人  副本 (CC) 和密件副本 (BCCs)  支援 HTML 或者是純文字 (Plaintext) 郵件  附件檔案2011/11/12 PHP Conference 49
  • 使用方式 $this->load->library(email); $this->email->from(your@example.com, Your Name); $this->email->to(someone@example.com); $this->email->cc(another@another-example.com); $this->email->bcc(them@their-example.com); $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 50
  • 影像縮圖功能  修改影像的尺寸  建立縮圖  影像裁剪  影像旋轉  浮水印  支援 GD/GD2 , NetPBM 以及 ImageMagick2011/11/12 PHP Conference 51
  • 以上只是一些 CodeIgniter Library 基本介紹 想了解更多功能請上 User Guide http://goo.gl/7PGnW2011/11/12 PHP Conference 52
  • 光是 CodeIgniter 內建的功能 還不能滿足您嘛?2011/11/12 PHP Conference 53
  • 歡迎使用 http://getsparks.org/2011/11/12 PHP Conference 54
  • What is Sparks? Ruby 有 RubyGems Node.js 有 npm CodeIgniter 有 sparks2011/11/12 PHP Conference 55
  • What is Sparks? Package Management System Making Code Easy to Find, Create, and Distribute2011/11/12 PHP Conference 56
  • Get Sparks tool Now!! 一行指令就安裝完成$ php -r "$(curl -fsSL http://getsparks.org/go-sparks)" 2011/11/12 PHP Conference 57
  • 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 58
  • 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 59
  • 好用 sparks 介紹  ion_auth http://goo.gl/Au4kM  E-mail 啟動帳號 , 忘記密碼 .. 等  單一帳號多重群組  User/Email 雙重認證選擇  Zend ACL Library 導入權限  搭配 Facebook, Google Auth API 認證  Template http://goo.gl/BN5g6  動態讀取 CSS 或 Javascript2011/11/12 PHP Conference 60
  • CodeIgniter 重大改變 2009->2011  版本演進 1.7.x → 2.x.x  捨棄 PHP4  效能改善  版本控制  Bitbucket → Github  加速大家貢獻2011/11/12 PHP Conference 61
  • 如果有任何問題都可以到討論區留言 http://www.codeigniter.org.tw/forum/2011/11/12 PHP Conference 62
  • 歡迎加入 CodeIgniter 翻譯2011/11/12 PHP Conference 63
  • https://github.com/appleboy/PHP-CodeIgniter-Framework-Taiwan 縮址 : http://goo.gl/5CU9N 2011/11/12 PHP Conference 64
  • Thank You.2011/11/12 PHP Conference 65