使用PHP框架codeigniter的教程

774 阅读3分钟

开始使用PHP框架codeigniter

我一直都是用核心的PHP工作的,而且一直不愿意使用任何CMS(Joomla、Drupal等)。巧合的是,我从来没有机会在PHP中的任何框架上工作。但在目前工作的项目中,我们决定使用CodeIgniter

CodeIgniter是一个轻量级的开源Web应用框架。简而言之,它为你提供了一个适当的MVC模式的目录结构,同时还有一个自己的轻量级内置模板引擎。MVC模式帮助开发者分离业务逻辑和表现层。它需要非常少的设置,与著名的PHP框架Zend不同。Zend主要用于开发企业应用程序,是一个庞大的框架,因此使学习曲线更加困难。另一方面,CodeIgniter很容易设置,也更容易学习。

使用适当的框架

在你正在进行的任何项目中应用 适当的框架是非常重要的。当你使用最好的编码框架时,你可以完成比你曾经梦想的更多的事情。

消除一些可能使你无法真正完成所有任务的噪音和干扰,是朝着正确方向迈出的一大步,你会发现,开始使用正确的框架可能是你需要做的,作为实现这一目标的第一步。否则,你会发现自己在寻找正确的答案,而你的项目也不会像你希望的那样成功。

让我们开始使用CodeIgniter吧

当然,第一步是下载 codeigniter框架。你可以从以下网址下载最新的稳定版本的Codeignitercodeigniter.com/downloads/。下载的将是一个压缩文件(zip文件),只需解压并将其保存在一个文件夹中,例如Codeigniter。确保你把它放在htdocs或webserver的目录内。

现在是时候配置Codeigniter的初始设置,以便开始工作。要做到这一点,在你喜欢的编辑器中打开config.php文件。该文件位于 system/application/config 目录中。你会看到一个叫做$config的数组,它存储了所有的配置信息,我们将只改变以下的值,其余的保持原样:

/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
*/
//don't forget the TRAILING slash (/)
$config['base_url']	= "http://localhost/codeigniter/";

相信我,这将是让你开始的全部。一些博客/网站在这个文件中显示了许多变化,但你可以在需要时玩一玩。你可以从这个单一的文件中改变你的应用程序的很多东西。比如你可以将会话信息存储在数据库内,只需将config var $config['sess_use_database'] 设置为TRUE,默认为FALSE。你也可以将会话表的名称从默认的 "ci_sessions "改为你喜欢的任何名称。

由于没有一个网络应用程序 在没有数据库的情况下运行,让我向你展示如何在这个设置中配置一个数据库。我决定在下一个教程中讨论这个问题,但由于它非常简单,我们来做吧。为了配置数据库,打开数据库.php,它与config.php位于同一目录,即system/application/config。现在用你的MySQL服务器的实际值改变以下数组键的值:

$active_group = "default";
$active_record = TRUE;
 
$db['default']['hostname'] = "localhost";
$db['default']['username'] = ""; //database username
$db['default']['password'] = ""; //database password
$db['default']['database'] = ""; //name of the database
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = ""; //any table prefix, if you want to keep one
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

如你所见,数据库的配置也很简单。现在是时候使用CI框架开发一个简单的应用程序了。在这篇文章的一开始,我提到CodeIgniter给你一个MVC模式的结构,所以每个部分都有一个独立的文件夹。 让我们创建一个简单的控制器类来开始。

为此,让我们创建一个名为Hello的类,它将被写在hello.php文件中,存放在system/application/controllers/文件夹中。该文件的内容可以是:(你可以有一个不同的类,毕竟它只是一个PHP类):

class hello extends Controller
{
  function  __construct()
  {
    //call parent constructor
    parent::__construct();
  }
 
  function index()
  {
    $output['header'] = "My page's header";
    $output['content'] = "Here is the content of the webpage";
    //load from from the system/application/views/hello.php
    $this->load->view('hello',$output);
  }
}

剖析代码

现在让我们逐行了解一下这段代码。这是一个名为hello的控制器类,它扩展了默认的父类--控制器。对Controller类的扩展有利于这个控制器的执行。这个调用的构造函数简单地加载了父类的构造函数,显然是Controller。接下来是 **index();**函数,它在CI框架中具有特殊的意义。如果它存在于一个控制器中,当控制器被加载/执行时,它会被自动执行。

现在我们使用 MVC模式中的视图部分来输出数据。如果你注意到上面的代码加载了一个名为hello的视图,这是一个保存在system/application/views/文件夹中的文件。文件名应该与控制器的名称相同。数据以数组的形式提供,其中 header,content是模板变量,如下图hello.php中所示

<html>
  <head>
    <title>My first CodeIgniter Controller and View</title>
  </head>
  <body>
    <h1><?php echo $header ?></h1>
    <p><?php echo $content ?></p>
  </body>
</html>

上面的视图渲染了由调用控制器传递的数据。现在,让我们尝试测试一下,是否一切都像我们预期的那样,呼!打开你的浏览器,点击

http://localhost/codeigniter/index.php/hello/

如果一切正常,你应该看到一个网页,上面有控制器中指定的标题和正文内容。想知道,这是如何呈现的?CodeIgniter提供了一个非常好的基于REST的路由机制。这个URL是为了让你可以从控制器内部调用一个特定的控制器和方法。但是如果你注意到,在上面的URL中,我们只提到了控制器的名字,即hello,而没有提到函数名index()。如前所述,这是由于index(); 函数的存在会自动调用。如果它是另一个被称为render的函数,那么上面的URL就会被改成

http://localhost/codeigniter/index.php/hello/render/

上面的URL,现在调用 render()。 函数的 你好控制器。

CodeIgniter很简单,不是吗?如果你认为这很难,只要再走一遍步骤,我相信你会明白的。因为CI是最简单的框架,它可以让你很快开始开发。

祝你开发愉快!