CodeIgniter在大型网站上的新页面

时间:2011-04-24 19:10:45

标签: php codeigniter codeigniter-routing

我的网站上有许多用“纯”PHP编写的脚本,即没有使用特定的框架来编写文件。此外,所有URL都是使用.htaccess和特定PHP脚本自定义的。

为了顺利过渡,我想开始使用CodeIgniter来创建新页面,而不会中断对旧页面的访问,但我在CodeIgniter上看到的所有文档给人的印象是整个网站(可能有一些例外)需要基于框架。

是否可以在这里和那里使用单个页面的框架,同时保留原有的URL和代码?

2 个答案:

答案 0 :(得分:2)

简短的回答,是的。

您可以从子文件夹访问CI框架,例如,保持现有网站不变。

www.site.com/my_new_app/controller/method/

其中my_new_app是重命名的application文件夹。

答案 1 :(得分:1)

我将假设您已经拥有一个基本模板系统,并且能够使用现有网站呈现完整页面。由于Codeigniter实际上只是一个框架,因此没有什么可以阻止你使用vanilla php,如include或其他库和类。因此,您可以做的一件事是将您的站点转储到views文件夹中的子目录中,然后创建一个“主”控制器,除了加载完整的html页面之外什么都不做。

class Master extends CI_Controller {

    function __construct()
    {
        parent::__construct();
    }

    function index()
    {
        // We're expecting something like "registration/how-to-apply" here
        // Whatever your URL is. The .php extension is optional
        $args = func_get_args();
        $path = 'path_to_my_old_site/'.explode('/', $args);
        $this->load->view($path);
    }

}

// Then use this in config/routes.php
$route['(:any)'] = 'master/index/$1';

这将通过主控制器路由所有页面。因此,yoursite.com/pages/faq将加载文件application/views/old_site/pages/faq.php。您可以根据需要应用不同的路线。

这样,您可以花时间迁移以使用Codeigniter约定,一次一页。