ホームページ > バックエンド開発 > PHPチュートリアル > CI フレームワークの簡単な使用方法

CI フレームワークの簡単な使用方法

WBOY
リリース: 2016-07-28 08:28:57
オリジナル
1465 人が閲覧しました
  1. CodeIgniterフレームワーク
  2. 1、思い出MVC
  3. 1.1 M: モデル化、データ提供、データ保存
  4. 1.2V: ビュー、フォームの表示のみを担当します form
  5. 1.3C: コントローラー、モデルとビューを調整します
  6. 1.4 action: アクションはコントローラー内のメソッドであり、
  7. 2CI MVC
  8. によって使用されます。
  9. CI はじめに: CodeIgniter は、MVC 設計パターンに基づいた、軽量かつ強力な php フレームワークです。クラスライブラリの豊富なセットを提供します
  10. 2.1、アクセスurl使用pathinfo
  11. 2.2、形式: エントリファイル/コントローラー/アクション(デフォルトのパス情報 形式)
  12. 2.3アプリケーション ディレクトリ:
  13. ControllersControllers
  14. モデルモデル
  15. ビュー ビュー
  16. 2.4、デフォルトのコントローラはwelcome
  17. 2.5、デフォルトのアクションはindex
  18. 2.6、ファイル名はすべて小文字
  19. 3、コントローラー (controller):
  20. 3.1、サフィックスを追加する必要はなく、クラス名のみを追加します.php
  21. 3.2 、ファイル名はすべて user.php などの小文字 (大文字のファイル名はブラウザーではサポートされていません)
  22. 3.3、すべてのコントローラー、直接または間接的に CI_Controller クラスから継承されます。クラス名の文字は大文字です
  23. 3.4、メソッド名は大文字と小文字が区別されません
  24. アクション要件:1.publicで始まる必要があります
  25. 2.はアンダースコア(_)で始めることはできません
  26. 注意!メソッド名がクラス名と同じ場合はコンストラクターメソッド(__construct)
  27. 4
  28. 、view(
  29. view)とみなします。
  30. 4.1
  31. 、コントローラーにビューをロードします:
  32. $this
  33. ->load->view("user_add "); //いいえ、拡張機能 4.2 を追加し、コントローラーにビューをロードします
  34. $this
  35. ->load->view("user) / add”);//拡張子なし 注: $this
  36. ->
  37. load->view(view); を呼び出すことができます。 4.3、ビューでネイティブの
  38. php
  39. コードを直接使用します4.4、コントローラーで変数を割り当てます:
  40. $this
  41. ->load - >vars("ビュー内の変数名", phpの変数名); $this->
  42. load
  43. -& gt;
  44. vars
  45. ("str",$str);
  46. ビューで使用:php echo $str;?> 4.5、コントローラーに複数の変数を割り当てます:
  47. 例: $str="abcd
  48. ";
  49. $リスト
  50. = array
  51. ("
  52. id
  53. "=>"
  54. 1"," name"=>"zhangsan","
  55. パスワード
  56. "=>"1234");$data ["str "]= $str; $データ[ "リスト"]
  57. =
  58. $list; $this-> ;load->
  59. vars
  60. ( $データ) ; フレームワークが自動的に解決しますphp 短いタグ ?>
  61. 4.7、推奨使用: phpforeach ($listas $key
  62. => 属性
  63. 5.1$this->load 属性
  64. 5.1 . 1、ローダークラスシステムのインスタンス/core/Loader.php5.1
  65. 2
  66. CI_ ader が提供する Lo メソッド
  67. :
  68. $this
  69. ->load->view()load view
  70. $this-> ;load-> vars() ビューに変数を割り当てる$this->load
  71. -> ;
  72. データベース() データベース操作オブジェクトのロード$this -> load
  73. -> )
  74. ヘルプオブジェクト $this-> 5.2
  75. $これ
  76. ->uri属性
  77. 5.2.1、ローダークラスのインスタンス system/core/URI.php
  78. 5.2.2メソッド提供: CI_URI:
  79. $this->uri->セグメント(n) URLを取得するために使用されますnパラメータはコントローラ
  80. 1
  81. を表し、アクションは2を表し、値13、値を表します2 4で表されます…Usage
  82. 1
  83. : エントリファイル/コントローラー/アクション/値1/値2echo $this
  84. ->
  85. uri->セグメント(3);//出力値1使用法
  86. 2
  87. :インデックス .php /コントローラー/アクション/6//パラメーターは正しく対応する必要があります
  88. $id
  89. =
  90. 0){ echo $id;//出力6
  91. }
  92. 5.3
  93. $this->入力属性5.3
  94. .
  95. 1、ローダークラスシステムメソッドのインスタンス/core/Input.php5.3
  96. .
  97. 2CI_Inputによって提供されます:
  98. $これ
  99. ->
  100. input->post('ユーザー名'); //$_POST["ユーザー名"]; -> ;input -> ;
  101. server("DOCUMENT_ROOT");//$_SERVER["DOCUMENT_ROOT"]$this-&g t;input- >
  102. サーバー
  103. ("SERVER_ADDR");//サーバー側IP注: ビューでは、$thisを直接使用して、スーパーオブジェクトのプロパティにアクセスできます
  104. 6、データベース 6.1 にアクセスし、application
  105. /
  106. config/ データベース
  107. .
  108. php
  109. 6.2 、データベース操作クラスのロード:
  110. $this
  111. ->
  112. load
  113. ->database(); ロードが成功すると、スーパーオブジェクトのプロパティ (デフォルト) 属性名は db$this->
  114. db
  115. 6.3, $query= $this -& gt;db
  116. - >
  117. query(
  118. $sql
  119. );//戻り値はオブジェクト(array_fetch_object)です
  120. $sql =
  121. $this-> db ->last_query($sql);//最後に実行されたSQL文を表示します6.3 .1
  122. ,
  123. $クエリ= $this-> $list= $query-> $list = $query ->
  124. =
  125. $query->row();//直接オブジェクトであるデータの最初の部分を返します6.7,$row= $ query ->row_array
  126. ();
  127. //配列である最初のデータを返します6.8, $count= $query -> ; num_rows
  128. ();
  129. //結果セット内の行数を返します6.9, $field= $query-> フィールド数
  130. ();
  131. // 要求されたフィールド数を返します 6.10, $count= $query->affected_rows
  132. ();
  133. //影響を受ける行数を返す 6.11$id= $query->insert_id
  134. ();
  135. //自己増加するIDを返す 7、データベース内の構成7.1、自動読み込み
  136. db
  137. : アプリケーション /config/自動ロード .
  138. php
  139. 中構成:
  140. $autoload["libraries"]= array("database");
  141. この方法ではは必要ありません$これ ->ロード->データベース();
  142. 7.2、パラメータバインディング
  143. $name= $this -> input -> ->post ("pwd");
  144. //疑問符を使用してパラメータをバインドします $data[ 0 ]= $name ;
  145. $data[
  146. 1]= $pwd;//値を渡すための 2 次元配列$sql
  147. =" ci_user(name,
  148. pwd
  149. ) )の価値観(?,?) ”;//複数の疑問符、インデックス配列を渡す必要があります$bo ol = $this-> 値はブール値です 7.3、テーブルプレフィックス設定
  150. application
  151. /config/database.phpで構成されます: ' デフォルト'][' dbprefix']='
  152. ci_
  153. ';
  154. $db
  155. ['デフォルト']['_前']= 'ci_';
  156. '; コードでは、テーブルの接頭辞の後に名前を直接記述するだけで、将来プロジェクトのテーブルの接頭辞が変更される場合にのみ変更する必要があります。 $db['default']['dbprefix']='new_
  157. '、コード内:
  158. ci_ は自動的に行われます new_8、データベース操作 (ARモデル)
  159. 8.1、構成アプリケーションに置き換えられました/ cinfog/データベース. $active_record = TRUE;
  160. 8.2
  161. php
  162. 、テーブルプレフィックスを設定した後、 が追加されます自動的に 8.3、検索 (
  163. get
  164. ): $res = $this->db->get ('テーブル名');
  165. / /結果セットオブジェクトを返します
  166. $list = $res
  167. ->
  168. result();
  169. //配列を返します、配列は 1 つですobject
  170. $ list = $res
  171. ->
  172. ) ://データは連想配列を使用します$data["データベースフィールド名"] = value;//$this->input->post("name ");
  173. $data["データベースフィールド名"]=value; $res =
  174. $this
  175. ->db -> ;insert("データテーブル名",$data);
  176. //結果のブール値を返します。
  177. 8.5、modify (update
  178. ):
  179. //データは連想配列を使用します
  180. $data["データベースフィールド名"]= 値;
  181. //$this->input->post("name");
  182. $data["データベースフィールド名"]=
  183. value;
  184. $where = 配列("id" =>" 4 ");
  185. $res = $this->db->update("データテーブル名",$data,$where ) ;//return result boolean;
  186. 8.6、delete(delete):
  187. $where = array(" id ”=> ;"4");
  188. $res = $this->db->dalete("データテーブル名", $where);//結果のブール値を返す
  189. 9
  190. ARコヒーレント演算
  191. 9.1
  192. $res = $this-> ->from("user")//データテーブル名->where ( 「ID >"
  193. ,3)//条件 id と >->order_by
  194. ("id) の間にはスペースが必要です desc")//並べ替え->limit(3
  195. ,1)//ページング; 1項目をスキップし、3項目を取ることを意味しますアイテム、 tp の反対->get
  196. ();//データを取得$list = $res->_array () ;
  197. 9.2, where() 条件
  198. 条件記号: ">"、">="、"<"、"<="、"="、 "!="; 条件を指定しない場合、デフォルトは "=" $this-> = $this->db
  199. ->where ("名前","
  200. 管理者")->
  201. get ();//"="
  202. 9.2.2 $res=$this-&gt;db-&gt; );例: $res=
  203. $this- >db-> スペース2または複数の条件がある場合: を使用します array()9.2.3, $res= $this
  204. -> get(); 例: $res= $this->db->where( array( "名前
  205. " 「管理者","id>3" =>"2"))-&g t; get(); 9.2 .4、複雑なクエリ ステートメントでは
  206. $this->db-> query
  207. ( $sql,$data ); //疑問符を使用してパラメータをバインドします9.3join接続クエリ
  208. 9.3.1、デフォルトは left クエリ (left) に参加)
  209. $this->db->select("フィールド")
  210. - gt;から ("データテーブル名")
  211. ->join('結合テーブル','結合条件')
  212. -> ゲット (); //デフォルトは left クエリ (left join … on) 例:
  213. $this->db->select(“*”)
  214. -> から ("ユーザー")
  215. ->参加('カテゴリー',ユーザー.id= カテゴリ. id)//デフォルトは left query (left join )
  216. ->get();
  1. 9.3.2. join() の 3 番目のオプションのパラメータを使用して接続を選択します: left、right、outer、inner、left。外側、右外側
  2. 例:
  3. $this->db->select(“*”)
  4. ->from(“user”)
  5. -> join ("category", "user.id = category.id", "left")// 3 番目のパラメータで指定します
  6. ->get();
  7. 10.
  8. 10.1. コントローラーの拡張
  9. 1. application/core に新しいコントローラー (MY_Controller) を作成します。新しいコントローラーは、作成したコントローラーから拡張できます。
  10. 例: class MY_Controller extends CI_Controller{
  11. Public function __consreuct(){
  12. Parent::__construct(); //親クラスのコンストラクターを呼び出す
  13. //ログイン検証
  14. //権限の確認
  15. }
  16. }
  17. 2. welcome.php に作成したコントローラー (MY_Controller) を継承させ、CI_Controller を間接的に継承させます。
  18. 3. application/config/config.php でコントローラーのプレフィックスを変更できます
  19. $config['
  20. subclass_prefix
  21. '] = 'MY_'; 11. モデル
  22. 11.1. モデルファイルの命名: user_model.php、category_model.php、小文字のファイル名
  23. 推奨: モデルファイル名の接尾辞として _model を使用して、競合を回避します。コントローラーのクラス名が競合しています!
  24. 11.2. すべてのモデルは CI_Model クラスから直接または間接的に継承します
  25. 11.3 作成に必要なメソッド: getAll()...
  26. 11.4。コントローラーモデルの読み込み: $this->load->model("モデルファイル名"); // コントローラーにモデルを読み込むときのエイリアス
  27. ; load->model ("モデル ファイル名", "エイリアス");
  28. ロードが成功すると、デフォルトの属性名はモデル ファイル名またはエイリアスになります
  29. 11.6. コントローラーでモデルを呼び出します。データを取得します: $this->モデル ファイル名->メソッド名();
  30. 例: $this->load->model("User_model "); //ケースに注意
  31. $this->User_model->getAll(); //モデルを呼び出してデータを取得
  32. 11.6.1. コントローラーでモデルを呼び出すそしてデータを取得します: $this->alias->メソッド名() ;
  33. 例: $this->load->model("User_model","user"); // 注意してください。ケースへ
  34. $this->user->getAll(); // モデルを呼び出してデータを取得します
  35. 12. CI
  36. 12.1のURL関連関数。 $this->load->helper("url");
  37. 自動読み込みヘルパー関数を設定します:
  38. $autoload['helper
  39. '] = array('url)を設定します'); は application/config/autoload.php にあるため、 $this- >load->helper("url");
  40. ヘルパー関数:
  41. を記述する必要はありません。
  42. site_url("Controller/Action/Parameters"); // URL とパラメータを処理します
  43. ビューで使用します
  44. base_url( ); // Web サイトのルート ディレクトリに戻ります ("ci/");
  45. 13. CI ルーティングと疑似静的、非表示の Index.php エントリ ファイル
  46. 13.1、ルーティング設定
  47. application/config/routes.php で設定/変更:
  48. $route ['
  49. default_controller
  50. '] = "welcome" //デフォルトのコントローラーはwelcome
  51. ;
  52. 13.2、擬似静的設定
  53. は application/config/routes.php/ で設定されます 変更:
  54. //通常のマッチング (controller/)
  55. $route['
  56. ニュース
  57. /[
  58. d]{6}/([dw ]+).html'] = 'user/show/$1';http://localhost/CI/index.php/news/201401/caolizhi66.html
  59. はアクションを起こしますニュースのパラメータは user/show/$1
  60. 13.3 にルーティングされます。 エントリ ファイルindex.php
  61. 13.3.1を非表示にします: LoadModule rewrite_module modules/mod_rewrite.so
  62. 13.3.2. エントリ ファイル統計ディレクトリに、次の内容の .htaccess ファイルを作成します:
  63. RewriteEngine on //Enable pseudo-static
  64. RewriteCond %{ REQUEST_FILENAME} !-d //存在しないディレクトリに一致
  65. RewriteCond %{REQUEST_FILENAME} !-f //存在しないファイルに一致
  66. RewriteRule ^(.*)$index.php /$1 [QSA, PT,L] //ルールを書き直す
  67. この方法では、エントリファイルindex.phpを記述する必要がありません
  68. 14. CI でのページネーション
  69. $this->load->library('
  70. ページネーション
  71. ');
  72. 1 $config['base_url
  73. '] = $url;
  74. 2 / * ページング用の基本 URL
  75. 3 a と b のリンク形式を使用する場合、URL は /news/page/ の形式にする必要があります
  76. 4リンクが c および d の形式の場合、URL は /news
  77. 5 */
  78. 6 $config['
  79. total_rows'] = $total; の形式である必要があります。 //レコードの総数、これについては何も言うことはありません。データベースから取得するレコードの総数です
  80. 7 $config['per_page'] = $pagesize;ページごとのアイテム数。まあ、これについてはあまり言うことはありません。 。自分で設定してください。デフォルトは 10 です。
  81. 8 $config['page_query_string'] = TRUE;
  82. 9 /*パラメータ形式。 true をオンにすると、URL の後に &per_page=3 が自動的に追加されます。 (この per_page はデフォルトのクエリ文字です。もちろん、$config['query_string_segment'] を使用して自分で設定することもできます)
  83. 10 したがって、c と d の形式は通常、localhost/news になります。 ?&per_page =2 しかし、それはすべて同じであり、問​​題ではありません。 get の per_page は依然として 3
  84. 11 */
  85. 12 $config['first_link'] = 'Homepage'; // 最初のページには
  86. 13 が表示されます $config['last_link'] = '最後のページ'; // 最後のページには
  87. 14 が表示されます $config['next_link'] = '次のページ>'; // 次のページには
  88. 15 が表示されます。 $config['prev_link'] = '<前のページ'; // 前のページは
  89. 16 を示しています $config['cur_tag_open'] = '<aclass="current"> '; // 現在のページの開始スタイル
  90. 17 $config['cur_tag_close'] = '</a> >
  91. 18 /* 現在のページの終了スタイル。これらは自分で試すことができます。
  92. 19たとえば、現在のページのページ番号のスタイルを赤いフォントなどで見栄えを良くしたいと考えています。 cssコードをcurrentに追加できますnum_links
  93. ' ] = 2;// 現在の接続の前後に表示されるページ番号の数。これは、現在のページがページ 5 であることを意味し、その後、ページ
  94. 34567が表示されることを意味します22 $config['uri_segment'
  95. ]=4 ;23/*これリンク スタイル a) および b) を使用するときにページ数を決定するために使用されます。 24 たとえば、localhost/news/page/3 の uri_segment は 3 に設定する必要があります。 localhost/news/title/page/3 これは 4 に設定する必要があります25 */
  96. 26 $config
  97. [
  98. '
  99. use_page_numbers
  100. '
  101. ]
  102. = TRUE;27/*これは、a) と b) の違いです。オンにすると、ページにページ数が表示されます。 false はレコード数を示します 以上、CI フレームワークの簡単な使い方を内容も含めて紹介しましたので、PHP チュートリアルに興味のある方の参考になれば幸いです。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート