CodeIgniter在一个大网站上的新页面


New pages in CodeIgniter on a big website

我有一个网站,其中有许多脚本是用"纯" PHP编写的,即没有特定的框架用于编写文件。此外,所有的url都是使用.htaccess和特定的PHP脚本自定义的。

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

是否有可能使用单一页面的框架这里和那里,而留下旧的url和代码完好无损?

简短的回答,是的。

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

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

其中my_new_app为重命名的application文件夹

我将继续假设您已经有了一个基本的模板系统,并且能够用您现有的站点呈现完整的页面。由于Codeigniter实际上只是一个框架,因此没有什么可以阻止您使用普通的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约定。