我有一个网站,其中包含许多用“纯”PHP 编写的脚本,即没有使用特定的框架来编写文件。此外,所有 URL 都是自定义使用.htaccess
和特定的 PHP 脚本。
为了顺利过渡,我想在不中断对旧页面的访问的情况下开始将 CodeIgniter 用于新页面,但是我在 CodeIgniter 上看到的所有文档给人的印象是整个网站(可能有一些例外)需要基于框架。
是否可以在这里和那里使用单个页面的框架,同时保持旧的 URL 和代码完好无损?
我有一个网站,其中包含许多用“纯”PHP 编写的脚本,即没有使用特定的框架来编写文件。此外,所有 URL 都是自定义使用.htaccess
和特定的 PHP 脚本。
为了顺利过渡,我想在不中断对旧页面的访问的情况下开始将 CodeIgniter 用于新页面,但是我在 CodeIgniter 上看到的所有文档给人的印象是整个网站(可能有一些例外)需要基于框架。
是否可以在这里和那里使用单个页面的框架,同时保持旧的 URL 和代码完好无损?
简短的回答,是的。
例如,您可以从子文件夹中访问 CI 框架,而无需更改现有站点。
IE
www.site.com/my_new_app/controller/method/
my_new_app
重命名的application
文件夹在哪里。
我将假设您已经有一个基本的模板系统,并且能够使用您现有的站点呈现整个页面。由于 Codeigniter 实际上只是一个框架,因此没有什么可以阻止您使用 vanilla php、likeinclude
或其他库和类。因此,您可以做的一件事是将站点转储到文件夹中的子目录中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 约定,一次一页。