开发者

New pages in CodeIgniter on a big website

开发者 https://www.devze.com 2023-02-28 16:13 出处:网络
I have a website with many scripts written in \"p开发者_运维知识库ure\" PHP, i.e. no specific framework has been used to write the files. Furthermore, all the URLs are custom using .htaccess and speci

I have a website with many scripts written in "p开发者_运维知识库ure" PHP, i.e. no specific framework has been used to write the files. Furthermore, all the URLs are custom using .htaccess and specific PHP scripts.

For a smooth transition, I would like to start using CodeIgniter for new pages without disrupting access to the old pages, but all the documentation I've seen on CodeIgniter gives the impression that the whole website (perhaps with a few exceptions) needs to be based on the framework.

Would it be possible to use the framework for single pages here and there while leaving old URLs and code intact?


Short answer, yes.

You could access the CI framework from a subfolder, for instance, leaving the existing site untouched.

i.e

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

where my_new_app is the renamed application folder.


I'm going to go on the assumption that you already have a basic template system in place, and are able to render full pages with your existing site. Since Codeigniter is really just a framework, there's nothing to stop you from using vanilla php, like include, or additional libraries and classes. So, one thing you can do is dump your site into a sub directory in your views folder, then create a "master" controller which does nothing but load full html pages.

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';

This will route all pages through the master controller. So, yoursite.com/pages/faq will load the file application/views/old_site/pages/faq.php. You can apply different routes as you see fit.

This way, you can take your time migrating to use Codeigniter conventions, one page at a time.

0

精彩评论

暂无评论...
验证码 换一张
取 消