Maison développement back-end tutoriel php CI框架学习笔记(二) -入口文件index.php_php实例

CI框架学习笔记(二) -入口文件index.php_php实例

Jun 07, 2016 pm 05:16 PM
ci框架

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


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

1. 设置应用程序环境

define('ENVIRONMENT', 'development');
Copier après la connexion

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

default:   exit('The application environment is not set correctly.');
Copier après la connexion

为什么一开始就要配置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';
}
Copier après la connexion

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

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

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

$system_path = 'system';
$application_folder = 'application';
Copier après la connexion

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

if (defined('STDIN'))
{
   chdir(dirname(__FILE__));
}
Copier après la connexion

  这段代码是干嘛的呢?首先,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");
}
Copier après la connexion

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

Print_r(get_defined_constants());
Copier après la connexion

(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.'/');
}
Copier après la connexion

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

require_once BASEPATH.'core/CodeIgniter.php';
Copier après la connexion

  总结一下,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';
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser le framework CI en php ? Comment utiliser le framework CI en php ? Jun 01, 2023 am 08:48 AM

Avec le développement de la technologie réseau, PHP est devenu l’un des outils importants pour le développement Web. L'un des frameworks PHP les plus populaires - CodeIgniter (ci-après dénommé CI) a également reçu de plus en plus d'attention et d'utilisation. Aujourd'hui, nous allons voir comment utiliser le framework CI. 1. Installez le framework CI Tout d'abord, nous devons télécharger le framework CI et l'installer. Téléchargez la dernière version du package compressé du framework CI sur le site officiel de CI (https://codeigniter.com/). Une fois le téléchargement terminé, décompressez

Comment utiliser le framework CI en PHP Comment utiliser le framework CI en PHP Jun 27, 2023 pm 04:51 PM

PHP est un langage de programmation populaire largement utilisé dans le développement Web. Le framework CI (CodeIgniter) est l'un des frameworks les plus populaires de PHP. Il fournit un ensemble complet d'outils et de bibliothèques de fonctions prêts à l'emploi, ainsi que certains modèles de conception populaires, permettant aux développeurs de développer des applications Web plus efficacement. Cet article présentera les étapes et méthodes de base du développement d'applications PHP à l'aide du framework CI. Comprendre les concepts et les structures de base du cadre CI. Avant d'utiliser le cadre CI, nous devons comprendre certains concepts et structures de base. Vers le bas

Comment utiliser le framework CI4 en php ? Comment utiliser le framework CI4 en php ? Jun 01, 2023 pm 02:40 PM

PHP est un langage de script côté serveur largement utilisé, et CodeIgniter4 (CI4) est un framework PHP populaire qui offre un moyen rapide et excellent de créer des applications Web. Dans cet article, nous vous apprendrons à utiliser le framework CI4 pour développer des applications Web exceptionnelles en vous expliquant comment l'utiliser. 1. Téléchargez et installez CI4. Vous devez d'abord le télécharger depuis le site officiel (https://codeigniter.com/downloa

Un guide des frameworks CI en PHP Un guide des frameworks CI en PHP May 22, 2023 pm 07:10 PM

Avec le développement d'Internet et son intégration continue dans la vie des gens, le développement d'applications réseau est devenu de plus en plus important. En tant que langage de programmation bien connu, PHP est devenu l’un des langages privilégiés pour développer des applications Internet. Les développeurs peuvent utiliser de nombreux frameworks PHP pour simplifier le processus de développement, l'un des plus populaires étant le framework CodeIgniter (CI). CI est un puissant framework d'application Web PHP. Il présente les caractéristiques de légèreté, de facilité d'utilisation, de performances optimisées, etc., permettant aux développeurs de créer rapidement.

Comment introduire le CSS dans le framework ci Comment introduire le CSS dans le framework ci Dec 26, 2023 pm 05:20 PM

Les étapes pour introduire les styles CSS dans le framework CI sont les suivantes : 1. Préparez les fichiers CSS ; 2. Stockez les fichiers CSS à l'emplacement approprié du projet de framework CI 3. Dans les pages qui doivent utiliser les styles CSS, introduisez CSS ; via le fichier de balise HTML <link> ; 4. Utilisez la classe CSS ou le nom de l'ID dans l'élément HTML pour appliquer le style correspondant.

Explication détaillée des étapes pour référencer les styles CSS dans le framework CI Explication détaillée des étapes pour référencer les styles CSS dans le framework CI Jan 16, 2024 am 09:28 AM

Tutoriel : étapes détaillées pour introduire les styles CSS dans le framework CI, des exemples de code spécifiques sont requis Introduction : le style est un élément crucial du développement d'applications Web. Utilisez CSS (Cascading Style Sheets) pour embellir les pages Web et offrir une meilleure expérience utilisateur. Lors du développement à l'aide du framework CodeIgniter (CI), la manière d'introduire correctement les styles CSS est particulièrement importante. Cet article présentera les étapes détaillées de l'introduction des styles CSS dans le framework CI et vous fournira des exemples de code spécifiques. Étape 1 : Créez d’abord un fichier CSS,

Étapes pour introduire les styles CSS dans les pages Web à l'aide du framework CI Étapes pour introduire les styles CSS dans les pages Web à l'aide du framework CI Jan 16, 2024 am 09:20 AM

Les étapes d'introduction des styles CSS dans le framework CI nécessitent des exemples de code spécifiques. Le framework CI (CodeIgniter) est un framework de développement PHP populaire qui est largement utilisé pour créer des applications Web efficaces. Lors du développement d’applications Web, une belle interface utilisateur est une considération importante. L'utilisation de styles CSS peut optimiser et personnaliser l'interface de l'application Web, offrant ainsi aux utilisateurs une meilleure expérience. Dans un framework CI, l'introduction des styles CSS nécessite généralement les étapes suivantes, accompagnées d'exemples de code spécifiques. étape 1:

Comment utiliser le framework CI6 en php ? Comment utiliser le framework CI6 en php ? Jun 01, 2023 pm 11:10 PM

PHP est un langage de développement Web très populaire et CodeIgniter (CI) est un framework PHP très populaire. CodeIgniter fournit de nombreuses fonctions et fonctionnalités utiles, apportant une grande commodité aux développeurs. Dans cet article, nous explorerons comment utiliser le framework CI6. Installation de CI6 Avant de pouvoir commencer à utiliser CI6, vous devez d'abord terminer le processus d'installation. Vous devez d'abord télécharger le package compressé CI6 depuis le site officiel de CodeIgniter. Ensuite, décompressez ce fichier et placez-le dans

See all articles