1. CI とは
CI の正式名は CodeIgniter で、シンプルで「エレガントな」ツールキットとして、完全に機能する PHP プログラマを構築できます。 MVC 設計パターンに基づいており、軽量で習得が容易で、セキュリティに配慮しており、健全なドキュメントと豊富なクラス ライブラリを備えています。
2. CI でできること
CI は、ファイルのアップロード、画像処理、ファイル圧縮、電子メール送信など、多くの豊富なクラス ライブラリを提供します。これらのクラス ライブラリの存在により、開発の難易度とサイクルが大幅に軽減され、外部クラス ライブラリを統合する必要性も軽減されます。 ECサイト、SNS、フォーラム、コンテンツ管理システム(CMS)、顧客関係管理システム(CRM)など、さまざまなWebアプリケーションを迅速かつ効率的に開発できます。
3. MVC
エントリ ファイル: ブラウザが直接要求する唯一のスクリプト ファイル
コントローラー コントローラー: モデルとビューを調整します
モデル : 提供しますデータとデータの保存
ビュー: 表示とフォームのみを担当します...
アクション: コントローラー内のメソッドであり、ブラウザーによって要求されるために使用されます
4. CI
の mvc は、pathinfo を使用して URL: エントリー file.php/controller/action
アプリケーション ディレクトリ内: コントローラー (コントローラー)、モデル (モデル)、ビュー (ビュー)
5. c (コントローラー)。
サフィックスは必要ありません。
すべての小文字のファイル名 (例: user.php)。
CI_Controller クラスから直接または間接的に継承されたすべてのコントローラー。
コントローラーのアクション (メソッド) 要件は次のとおりです: public、アンダースコアで始めることはできません、クラス名と同じであってはなりません (そうでない場合はコンストラクター メソッドとみなされます)。6. 見る。
コントローラーにビューをロードします: $this->load->view(view)
// サブディレクトリがある場合は、拡張子を書かずにビュー名を直接書きます。サブディレクトリを追加すると、ビューを複数回呼び出すことができます。
テンプレート エンジンを使用せずに、ビュー内で直接 PHP ネイティブ コードを使用します。
を使用することをお勧めします。 $list as $ item):?> =$item['']?>
変数の割り当て: this->assign('key','value')//smarty; this->load->vars('key','value') または $data[ ' list']=$list this->load
->vars($data)
7. スーパー オブジェクト
現在のコントローラー オブジェクト (CI_Controller)
は多くの属性を提供します:
$this->load (クラス属性、Loader.php のローダー CI_Loader クラス インスタンス)
ローダー CI_Loader クラスで提供されるメソッド: view()-ビューのロード、vars() - ビューへの変数の割り当て、database() - データベース操作オブジェクトのロード、model() - モデル オブジェクトのロード、helper() - 補助関数。
$this->uri (クラス属性、URI.php の CI_URI クラスのインスタンス)
CI_URI クラスで提供されるメソッド:
の取得には、segment() が使用されます。エントリの URL パラメータ file.php/controller/action/parameter1/parameter2 (またはアクション内の対応するパラメータ)
$this->input (class 属性、Input.php の例の CI_Input クラス)
メソッドは CI_Input クラスで提供されます。
post() は投稿によって送信されたデータを取得します。これは $_POST と同等であり、server() はサーバー内の関連情報を取得します。 $_SERVER に。
ビューで $this を直接使用して、スーパー オブジェクトのプロパティにアクセスします。
8. 操作データベース
設定ファイルを変更します: applicationconfigdatabase.php
データベース オブジェクトをロードします: $this->load->database();
SQL の書き込み: $sql="";
SQL の実行: $this->db->query($sql,[連想配列]); クエリは配列を返します ($res-> ;result())、追加、削除、変更はブール値を返します
9. ar (アクティブ レコード、一般的に使用される単純な SQL) 操作
設定ファイルを変更します: applicationconfigdatabase.php ($active_record = TRUE;); applicationconfigautoload.php ($autoload['libraries'] = array('database');)
クエリを実行します: $this->db->get(テーブル名);テーブル内のデータ
挿入の実行: $this->db->insert (テーブル名、連想配列データ);
更新の実行: $this->db-> update (テーブル名、連想配列データ) データ、条件 (配列))
ar コヒーレント操作: $this->db->select('id,name')->from('user ')->where('id >=',3)->limit(3,2)->order_by('id desc ')
->get();
// ci sql($this->db->last_query()) によって実行されます select 'id','name' from('blog_user') where 'id' >=3 order by ' id' desc limit 2,3
10. ci コントローラーの拡張
クラスが CI_Controller を継承する applicationcore ディレクトリに MY_Controller.php を作成します。他のコントローラーは MY_Controller を継承できます。
11. m (モデル)
User_model は CI_Model を継承し、スーパー オブジェクト内の属性を直接使用できます。ファイル名はすべて小文字で、クラス名の最初の文字は大文字になります。接尾辞として _model を使用することをお勧めします。
コントローラー内
モデルの読み込み: $this->load->model('User_model');
モデルを呼び出してデータを取得: $list=$this->User_model->getAll() ;
ビューのロード: $this->load->view('ビュー名',array('list'=>$list));
12. URL 関連関数
コントローラーに URL をロードします (多くの場合、config ディレクトリーの autoload.php ファイルで構成できます): $this->load->helper('url'); 次に、次のアクションを実行します。フォームは < ;?php echo site_url('コントローラー名/メソッド名'); ?>
base_url: ベース ディレクトリを取得します ( Web サイトのルート ディレクトリ)
13. ルーティングを設定します
config ディレクトリの Router.php ファイルで設定します
$route['news/(d+).html'] ='article/show/$1 '; //=以下は実際のアクセス アドレスと、以前に生成された表示アドレスです
14. クラス ファイルの読み込み: $this- >load->library('ページネーション '); $this->load->helper('uri');
$config['base_url']=site_url('コントローラー/メソッド名'); //アドレス
$config['total_rows']=100; //総レコード数
$config['per_page']=10; page
$config[ 'first_link']='Homepage' // ホームページのリンク表示名を設定します
$this->pagination->initialize($config);初期化設定
$page_index= intval($this->uri->segment(3)); //開始位置を取得
$sql='select * from テーブル名制限$page_index,10';
$data['links']=$this->pagination->create_links() //リンクを作成します
$this-> ;load->view('Directory/php name',$data);
15. ファイルのアップロード
フォーム フォーム。属性 enctype="multipart/form-data が必要です。 」。
入力タグ、タイプはファイルです。
$config['upload_path'] = './uploads/'; // ディレクトリをアップロードします
$config['allowed_types'] = 'gif|jpg|png'; Type
$config['max_size'] = '100'; //最大ファイル制限
$config['max_width'] = '1024';
$config['max_height'] = '768' //ファイルの最大高さ$this->load->library('upload', $config);アップロードされたファイル
$this->upload->do_upload('input tag name')); //アップロード
16. セッション (構成が必要)
$ this- >load->library('session'); (注: md5(uniqid()); //キーを生成)
this->session->set_userdata($array); / /複数のページがデータを渡す
this->session->set_flashdata($array); //2 ページが渡されると破棄される
17.詳細は API )
18. フォーム検証 (詳細は API を確認してください)