-------------------------------------- ------ -------------------------------------------- ------ -------------
フレームワークエントリーファイルindex.phpを入力します =>
アプリケーションの現在の環境を定義します(エラーモードの設定に使用されます):define('ENVIRONMENT', 'development');
システムファイルのディレクトリ名を設定します: $system_path = 'system';
アプリケーションファイルのディレクトリ名を設定します: $application_folder = 'application' //カスタマイズ可能
;現在のファイル名定数を定義します:define('SELF', pathinfo(__FILE__, PATHINFO_BASEPATH));
PHP ファイルのサフィックス定数を定義します:define('EXT', '.php') //このグローバル定数の使用は推奨されません
システム ディレクトリ パス定数を定義します:define('BASEPATH', str_replace('\', '/', $system_path));
フロントエンドコントローラーのファイルパス定数を定義します:define('FCPATH', str_replace(SELF, '', __FILE__));
システム ディレクトリ名定数を定義します:define('SYSDIR', trim(strchr(trim(BASEPATH, '/'), '/'), '/'));
アプリケーションディレクトリのパス定数を定義します:define('APPPATH', BASEPATH.$application_folder.'/');
ブート ファイルをロードします: require_once BASEPATH.'core/CodeIgniter.php';
---------------------------------@黑eyedpoet
システム初期化ファイルCodeIgniter.phpを入力します =>
define('CI_VERSION', '2.2.0');
define('CI_CORE', FALSE);
require(BASEPATH.'core/Common.php'); //load_class()などの関数を含む公開関数ライブラリファイルを紹介します
require(APPPATH.'config/'.ENVIRONMENT.'/constants.php'); //フレームワーク定数ファイル、ファイルおよびディレクトリモード、ファイルストリームモードの紹介
set_error_handler('_Exception_handler') //PHP エラーを記録するためのカスタム エラー ハンドラーを定義します
if ( ! is_php('5.3'))
{
@set_magic_quotes_runtime(0) // 魔法の引用符を削除します
}
if (isset($assign_to_config['subclass_prefix']) AND $assign_to_config['subclass_prefix'] != '')
//サブクラスプレフィックスを設定します
{
get_config(array('subclass_prefix' => $assign_to_config['subclass_prefix']));
}
if (function_exists("set_time_limit") == TRUE かつ @ini_get("safe_mode") == 0)
//無料スクリプト実行時間制限を設定します
{
@set_time_limit(300);
}
$BM =&load_class('ベンチマーク', 'コア');
//Benchmark ベンチマーク クラスをインスタンス化すると、ポイントをマークし、それらの間のメモリ消費量を計算することもできます。
$BM->mark('total_execution_time_start');//ベンチマーク マーク、合計実行時間の開始: $this->marker['total_execution_time_start'] = microtime();
$BM->mark('loading_time:_base_classes_start');
$EXT =& load_class('Hooks', 'core'); // スタックせずに基本システムを拡張するメカニズムを提供するために Hooks フック クラスをインスタンス化します
$EXT->_call_hook('pre_system') //指定されたフック pre_system を呼び出します
$CFG =&load_class('Config', 'core') //構成ファイルを管理するメソッドを含む Config 構成クラスをインスタンス化します
if (isset($assign_to_config))
{
$CFG->_assign_to_config($assign_to_config);
}
$UNI =&load_class('Utf8', 'core'); // UTF-8 環境のサポートを提供するために Utf8 クラスをインスタンス化します
$URI =&load_class('URI', 'core'); //URIクラスをインスタンス化し、URIを解析してルーティングを決定します
$RTR =&load_class('Router', 'core'); //ルーターのルーティングクラスをインスタンス化し、URIを解析してルーティングを決定します
$RTR->_set_routing(); //この関数はURIリクエストとルートに基づいてを決定します
if (isset($routing)) {
}
;
if ($EXT->_call_hook('cache_override') === FALSE)
{
if ($OUT->_display_cache($CFG, $URI) == TRUE) {
exit; //キャッシュ ファイルがある場合は、現在のスクリプトを直接終了します
}
}
$SEC =&load_class('Security', 'core') //Security セキュリティ クラスをインスタンス化します
$IN =&load_class('Input', 'core'); //安全のためにInput入力クラスをインスタンス化し、グローバル入力データを前処理します
$LANG =&load_class('Lang', 'core') //Lang 言語クラスをインスタンス化します
require BASEPATH.'core/Controller.php';, //基本的なコントローラークラスの紹介
function &get_instance()
{
return CI_Controller::get_instance(); // 静的変数 $instance を返す }
{
require APPPATH.'core/'.$CFG->config[' subclass_prefix'].'Controller.php';
}
if ( ! file_exists(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php'))
{
show_error('デフォルトのコントローラーをロードできません。 Routes.php ファイルで指定されたコントローラーが有効であることを確認してください。');
}
//ローカルコントローラーをロード
$BM->mark('loading_time:_base_classes_end');
//ベンチマーク マーク、ロード時間の終了: $this->marker['loading_time:_base_classes_end'] = microtime();
セキュリティチェック
$EXT->_call_hook('pre_controller') //「pre_controller」フックを呼び出します
$BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_start'); //ベンチマークマーク、コントローラー実行時間マークポイント
$CI = new $class() //リクエストコントローラーをインスタンス化します
;
$EXT->_call_hook('post_controller_constructor') //「post_controller_constructor」フックを呼び出します
リクエストされたメソッドを呼び出す
$BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_end'); //ベンチマークマーク、コントローラー実行時間終了マークポイント
$EXT->_call_hook('post_controller') //「post_controller」フックを呼び出します
if ($EXT->_call_hook('display_override') === FALSE)
{
$OUT->_display(); // 最終的なレンダリング出力をブラウザに送信します
}
$EXT->_call_hook('post_system') //「post_system」フックを呼び出します
if (class_exists('CI_DB') AND isset($CI->db))
{
$CI->db->close(); //データベース接続を閉じる
}
Zend Frameworkは時間がかかり、急速な学習には適していません
speedphp、qeephp、cakephp、TPなど、現在国内外に多くのフレームワークプログラムがあります
投稿者の要望によると、これしかありません。個人的にはCIの方が良いと思います
CodeIgniterについて
CodeIgniterは、PHP Webサイト開発者向けのアプリケーション開発フレームワークおよびツールキットです。開発者がプロジェクトをより迅速に開発できるようにすることを目的として、標準ライブラリの豊富なセットとシンプルなインターフェイスと論理構造を提供します。 CodeIgniter を使用して、作成するコードの量を減らし、プロジェクトの創造的な開発にエネルギーを集中させます。
CodeIgniter は、Ellislab の CEO、Rick Ellis によって開発されました。そのコア フレームワークはこのプログラム用に特別に作成されていますが、他の多くのクラス ライブラリ、補助関数、およびサブシステムは、Rick Ellis と Paul Burdick によって作成されたコンテンツ管理システム ExpressionEngine から来ています。 Ruby on Rails からのインスピレーションにより、私たちは PHP フレームワークを作成し、Web コミュニティの一般的な意識にフレームワークの概念を導入することを思いつきました。
彼女は小さいながらも強力な PHP フレームワークであり、シンプルで「エレガントな」ツールキットとして、PHP プログラマー向けに完全に機能する Web アプリケーションを構築できます。あなたがホスティングを共有しており、クライアントの期限を心配している開発者である場合、愚かで不格好なフレームワークにうんざりしている場合、CodeIgniter は次のような場合に必要です...
* コンパクトなフレームが必要です。
* 素晴らしいパフォーマンスが必要です。
* 標準ホスト (PHP4 など) 上のさまざまな PHP バージョンおよび構成との幅広い互換性が必要です。
* ほぼ設定を必要としないフレームワークが必要です。
* コマンドラインの使用を必要としないフレームワークが必要です。
* 制限的なコーディング ルールに従う必要のないフレームワークが必要です。
* あなたは PEAR のような大規模な統合ライブラリには興味がありません。
* テンプレート言語を強制的に学習する必要はありません (ただし、必要なテンプレート パーサーを選択することはできます)。
* あなたは複雑さを好まず、シンプルさを好みます。
* 明確で完全な文書が必要です。
最も重要なことは、CI のドキュメントがシンプルで豊富で理解しやすいということです (笑) 学びたい場合は、CI China に行って見てください。私がアドレスを投稿する必要はありません。
しかし、質問があります。codeigniter を使用したいために Ubuntu 仮想マシンをインストールしましたか?
この場合、実際には Windows で直接実行できます。 PHP はサーバーによってコンパイルされるため、最初に行う必要があるのはサーバーをローカルにインストールすることです。個人的にはxamppをお勧めします。インストール後、すべてが正常に実行されていることを確認し、localhost でステータスを確認します。
それでは、コードイグナイターについて話しましょう。 codeigniter は PHP フレームワークです。 PHP を学習したことがない場合は、PHP を学習する前に、まず PHP の基礎を築く必要があります。 PHP には、通常のコード、オブジェクト指向、MVC という 3 つのコードの書き方があります (このように理解できます、笑)。 Codeigniter は mvc メソッドを使用します。 MVC はモデル、ビュー、コントローラーです。モデルは主にデータベース内のデータを呼び出すために使用され、コントローラーはモデルとビューの間の仲介者として理解できます。モデルから値を取得してビューに渡します。 View は表示に使用される場所です。言語の例: html、css、javascript。
codeigniter の使用方法
xampp をインストールした後、インストールフォルダーに移動して htdocs を見つけ、フォルダーを作成します。あとはこのように彼を放り込むだけです。
(ハイライトされたフォルダーは私が作成したものです)
基本的にはこれです。
実際、今最も重要なことは基礎をしっかりと築くことです。質問からすると、あなたはこれらのことをまったく理解していないようですので、このような質問に答えるのが面倒な場合があります。解決策が見つかることを願っています。