目次
CI框架学习笔记(二) -入口文件index.php,
ホームページ バックエンド開発 PHPチュートリアル CIフレームワーク学習メモ(2) - エントリーファイルindex.php、_PHPチュートリアル

CIフレームワーク学習メモ(2) - エントリーファイルindex.php、_PHPチュートリアル

Jul 13, 2016 am 10:15 AM
CIフレームワーク

CI框架学习笔记(二) -入口文件index.php,

  上一节(CI框架学习笔记(一) - 环境安装、基本术语和框架流程)中,我们提到了CI框架的基本流程,这里再次贴出流程图,以备参考:


  作为CI框架的入口文件,源码阅读,自然由此开始。在源码阅读的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现。

1. 设置应用程序环境

define('ENVIRONMENT', 'development');
ログイン後にコピー

这里的development可以是任何你喜欢的环境名称(比如dev,再如test),相对应的,你要在下面的switch case代码块中,对设定的环境做相关的错误控制,否则,CI框架会认为你没有配置好相应的环境,从而退出进程并给出对应的错误信息:

default:   exit('The application environment is not set correctly.');
ログイン後にコピー

为什么一开始就要配置ENVIRONMENT?这是因为,CI框架中很多组件都依赖于ENVIRONMENT的配置,我们看一下system中,引用ENVIRONMENT的地方:


  可以看到,很多组件都依赖于ENVIRONMENT.例如,查看system/config/Common.php, 这其中有一段引入配置文件的代码,是这样实现的:

if ( ! defined('ENVIRONMENT') OR ! file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/config.php'))
{
  $file_path = APPPATH.'config/config.php';
}
ログイン後にコピー

  在CI框架中,很多配置文件都是通过这种方式引入的,因此ENVRIONMENT对于CI框架的正确运行时必须的,所以需要在开始的时候配置好ENVIRONMENT。设置ENVIRONMENT的一个好处是:可以很方便的切换系统的配置而不必修改系统代码。例如,在系统进入测试阶段时,database配置为测试的数据库,而在系统测试完毕时,database切换到线上的数据库。这好比是用一个开关控制了系统的环境切换,自然是非常方便的。

2.  配置系统目录和应用程序目录

  CI框架允许你将系统核心源码和应用程序代码分开放置,但是你必须设定好系统的system文件夹和application文件夹(同样,文件夹名字可以是任何合法的文件夹名称,而不一定使用'system'和'application'):

$system_path = 'system';
$application_folder = 'application';
ログイン後にコピー

接下来,有这么一段代码:

if (defined('STDIN'))
{
   chdir(dirname(__FILE__));
}
ログイン後にコピー

  这段代码是干嘛的呢?首先,STDIN、STDOUT、STDERR是PHP以 CLI(Command Line Interface)模式运行而定义的三个常量,这三个常量类似于Shell的stdin,stdout,stdout,分别是PHP CLI模式下的标准输入、标准输出和标准错误流。也就是说,这三行代码是为了保证命令行模式下,CI框架可以正常运行。关于PHP CLI的更多细节可以参考:http://www.php-cli.com/

3. system目录的正确性验证和application目录验证

(1). system目录的正确性验证
  Realpath返回的是目录或文件的绝对目录名(没有最后的/)

if (realpath($system_path) !== FALSE)
{
  $system_path = realpath($system_path).'/';
}
$system_path = rtrim($system_path, '/').'/';
if ( ! is_dir($system_path))
{ 
  exit("xxxxxxxx");
}
ログイン後にコピー

几个定义的常量(PATH结尾的常量表示目录路径,DIR结尾的变量表示目录名):
a. SELF(这里指index.php文件)
b. EXT(deprecated,废弃的,不必关注)
c. BASEPATH(system文件夹的路径)
d. FCPATH(前端控制器的路径)
e. SYSDIR(系统system目录名)
f. APPPATH(应用程序路径)
查看所有定义的常量的方法:

Print_r(get_defined_constants());
ログイン後にコピー

(2)application的目录验证。

代码较简单,不做过多的解释:

if (is_dir($application_folder))
{
  define('APPPATH', $application_folder.'/');
}
else
{
  if ( ! is_dir(BASEPATH.$application_folder.'/'))
  {
    exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF);
  }

  define('APPPATH', BASEPATH.$application_folder.'/');
}
ログイン後にコピー

  入口文件的最后一行,引入CodeIgniter.php(也是下一步阅读的关键)。CodeIgniter.php被称为bootstrap file,也就是它是一个引导文件,是CI框架执行流程的核心文件。

require_once BASEPATH.'core/CodeIgniter.php';
ログイン後にコピー

  总结一下,index.php并没有做太多复杂的工作,而是类似一个后勤,为CI框架的运行提供了一系列配置参数和正确性验证,而这些配置和验证,是CI框架能够正常运行的关键。

  最后,按照惯例,贴一下整个文件的源码(简化注释版):

<?php

define('ENVIRONMENT', 'development');

if (defined('ENVIRONMENT'))
{
  switch (ENVIRONMENT)
  {
    case 'development':
      error_reporting(E_ALL);
    break;
  
    case 'testing':
    case 'production':
      error_reporting(0);
    break;

    default:
      exit('The application environment is not set correctly.');
  }
}

/*
 * SYSTEM FOLDER NAME
 */
$system_path = 'system';

/*
 * APPLICATION FOLDER NAME
 */
$application_folder = 'application';

/*
 * Resolve the system path for increased reliability
 */
if (defined('STDIN'))
{
  chdir(dirname(__FILE__));
}

if (realpath($system_path) !== FALSE)
{
  $system_path = realpath($system_path).'/';
}

$system_path = rtrim($system_path, '/').'/';

if ( ! is_dir($system_path))
{
  exit("xxxxxxxx");
}

/*
 * set the main path constants
 */
// The name of THIS file
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));

// this global constant is deprecataaed.
define('EXT', '.php');

// Path to the system folder
define('BASEPATH', str_replace("\\", "/", $system_path));

// Path to the front controller (this file)
define('FCPATH', str_replace(SELF, '', __FILE__));

// Name of the "system folder"
define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));

// The path to the "application" folder
if (is_dir($application_folder))
{
  define('APPPATH', $application_folder.'/');
}
else
{
  if ( ! is_dir(BASEPATH.$application_folder.'/'))
  {
    exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF);
  }

  define('APPPATH', BASEPATH.$application_folder.'/');
}

require_once BASEPATH.'core/CodeIgniter.php';
ログイン後にコピー

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/901290.html技術記事 CIフレームワーク学習メモ(2) - エントリーファイルindex.php, 前のセクション(CIフレームワーク学習メモ(1) - 環境インストール、基本用語、フレームワークプロセス)では、CIフレームワークの基礎について触れました...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPでCIフレームワークを使用するにはどうすればよいですか? PHPでCIフレームワークを使用するにはどうすればよいですか? Jun 01, 2023 am 08:48 AM

ネットワーク技術の発展に伴い、PHP は Web 開発の重要なツールの 1 つになりました。人気のある PHP フレームワークの 1 つである CodeIgniter (以下、CI) も、ますます注目され、使用されるようになりました。今回はCIフレームワークの使い方を見ていきます。 1. CI フレームワークをインストールする まず、CI フレームワークをダウンロードしてインストールする必要があります。 CI フレームワーク圧縮パッケージの最新バージョンを CI の公式 Web サイト (https://codeigniter.com/) からダウンロードします。ダウンロードが完了したら解凍します

PHPでCIフレームワークを使用する方法 PHPでCIフレームワークを使用する方法 Jun 27, 2023 pm 04:51 PM

PHP は、Web 開発で広く使用されている人気のあるプログラミング言語です。 CI (CodeIgniter) フレームワークは、PHP で最も人気のあるフレームワークの 1 つであり、既製のツールと関数ライブラリの完全なセットに加え、いくつかの一般的なデザイン パターンを提供し、開発者が Web アプリケーションをより効率的に開発できるようにします。この記事では、CI フレームワークを使用して PHP アプリケーションを開発する基本的な手順と方法を紹介します。 CI フレームワークの基本概念と構造を理解する CI フレームワークを使用する前に、いくつかの基本概念と構造を理解する必要があります。下

PHPでCI4フレームワークを使用するにはどうすればよいですか? PHPでCI4フレームワークを使用するにはどうすればよいですか? Jun 01, 2023 pm 02:40 PM

PHP は広く使用されているサーバー側スクリプト言語であり、CodeIgniter4 (CI4) は、Web アプリケーションを構築するための高速かつ優れた方法を提供する人気のある PHP フレームワークです。この記事では、CI4 フレームワークの使用方法を説明することで、優れた Web アプリケーションを開発するための CI4 フレームワークの使用を開始できるようにします。 1. CI4 をダウンロードしてインストールします。 まず、公式 Web サイト (https://codeigniter.com/downloa) から CI4 をダウンロードする必要があります。

PHP の CI フレームワークのガイド PHP の CI フレームワークのガイド May 22, 2023 pm 07:10 PM

インターネットの発展と人々の生活への継続的な統合に伴い、ネットワーク アプリケーションの開発はますます重要になっています。有名なプログラミング言語として、PHP はインターネット アプリケーションの開発に推奨される言語の 1 つになりました。開発者は、開発プロセスを簡素化するために多数の PHP フレームワークを使用できます。最も人気のあるフレームワークの 1 つは CodeIgniter (CI) フレームワークです。 CI は強力な PHP Web アプリケーション フレームワークであり、軽量で使いやすく、パフォーマンスが最適化されているなどの特徴があり、開発者は迅速に構築できます。

CSSをCIフレームワークに導入する方法 CSSをCIフレームワークに導入する方法 Dec 26, 2023 pm 05:20 PM

CI フレームワークに CSS スタイルを導入する手順は次のとおりです: 1. CSS ファイルを準備します; 2. CSS ファイルを CI フレームワーク プロジェクトの適切な場所に保存します; 3. CSS スタイルを使用する必要があるページに CSS を導入しますHTML <link> タグ File; 4. HTML 要素内の CSS クラスまたは ID 名を使用して、対応するスタイルを適用します。

CI フレームワークで CSS スタイルを参照する手順の詳細な説明 CI フレームワークで CSS スタイルを参照する手順の詳細な説明 Jan 16, 2024 am 09:28 AM

チュートリアル: CI フレームワークに CSS スタイルを導入するための詳細な手順。特定のコード例が必要です。 はじめに: スタイルは Web アプリケーション開発の重要な部分です。 CSS (Cascading Style Sheets) を使用して Web ページを美しくし、より良いユーザー エクスペリエンスを提供します。 CodeIgniter (CI) フレームワークを使用して開発する場合、CSS スタイルを正しく導入する方法が特に重要です。この記事では、CI フレームワークに CSS スタイルを導入する詳細な手順を紹介し、具体的なコード例を示します。ステップ 1: CSS ファイルを作成します。

CI フレームワークを使用して Web ページに CSS スタイルを導入する手順 CI フレームワークを使用して Web ページに CSS スタイルを導入する手順 Jan 16, 2024 am 09:20 AM

CI フレームワークに CSS スタイルを導入する手順には、特定のコード サンプルが必要です。CI (CodeIgniter) フレームワークは、効率的な Web アプリケーションを構築するために広く使用されている人気のある PHP 開発フレームワークです。 Web アプリケーションを開発する場合、美しいユーザー インターフェイスは重要な考慮事項です。 CSS スタイルを使用すると、Web アプリケーション インターフェイスを最適化してパーソナライズし、ユーザー エクスペリエンスを向上させることができます。 CI フレームワークで CSS スタイルを導入するには、通常、特定のコード例を伴う次の手順が必要です。ステップ1:

PHPでCI6フレームワークを使用するにはどうすればよいですか? PHPでCI6フレームワークを使用するにはどうすればよいですか? Jun 01, 2023 pm 11:10 PM

PHP は非常に人気のある Web 開発言語であり、CodeIgniter (CI) は非常に人気のある PHP フレームワークです。 CodeIgniter は多くの便利な機能を提供し、開発者に大きな利便性をもたらします。この記事では、CI6 フレームワークの使用方法について説明します。 CI6 のインストール CI6 の使用を開始する前に、まずインストール プロセスを完了する必要があります。まず、CodeIgniter 公式 Web サイトから CI6 圧縮パッケージをダウンロードする必要があります。次に、このファイルを解凍して次の場所に置きます

See all articles