Новые страницы в CodeIgniter на большом сайте - PullRequest
1 голос
/ 24 апреля 2011

У меня есть веб-сайт с множеством сценариев, написанных на «чистом» PHP, то есть для написания файлов не использовалась конкретная среда.Кроме того, все URL-адреса настраиваются с использованием .htaccess и определенных сценариев PHP.

Для плавного перехода я хотел бы начать использовать CodeIgniter для новых страниц без нарушения доступа к старым страницам, но всю документацию, которую яУвиденное на CodeIgniter создает впечатление, что весь сайт (возможно, с несколькими исключениями) должен быть основан на фреймворке.

Можно ли использовать фреймворк для отдельных страниц тут и там, оставляя старыеURL и код не повреждены?

Ответы [ 2 ]

2 голосов
/ 24 апреля 2011

Краткий ответ, да.

Вы можете получить доступ к инфраструктуре CI, например, из подпапки, оставив существующий сайт нетронутым.

т.е.

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

гдеmy_new_app - это переименованная папка application.

1 голос
/ 25 апреля 2011

Я собираюсь исходить из предположения, что у вас уже есть базовая система шаблонов, и вы можете рендерить полные страницы с вашим существующим сайтом. Поскольку 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, по одной странице за раз.

...