Актуализация на CodeIgniter от версия 1

След дълги еволюционни изследвания и подобрения, продължили около една година, момчетата от EllisLab пуснаха дългоочакван ъпдейт на рамката на CodeIgniter. Мнозина чакаха това и най-важната промяна е, че сега рамката напълно спря да поддържа PHP4, а PHP5 вече е необходимо условие за нейната работа.

След дълги еволюционни изследвания и подобрения, продължили около една година, момчетата от EllisLab пуснаха дългоочакван ъпдейт на рамката на CodeIgniter. Мнозина чакаха това и най-важната промяна е, че сега рамката напълно спря да поддържа PHP4, а PHP5 вече е необходимо условие за нейната работа.

1. Първо създайте статичен файл (ако все още нямате такъв), за да го показвате на посетителите на вашия сайт, докато работите по актуализацията. Моят го кръстих просто - index.htm и в него сложих кратко съобщение, че тече техническа работа и т.н.

2. Следващата стъпка е да отбележа какви промени съм направил в системната папка. Оказа се - само двойка. Един - в библиотеката за проверка и още един - добави персонализиран шрифт към папката с шрифтове за генериране на captcha. Вие, разбира се, може да имате други промени или да ги нямате изобщо, което е още по-удобно.

Въпросът е, че по-късно можете да възстановите в новата системна папка това, което сте променили специално за себе си.

3. След това изтрих всичко, което беше в системната папка (с изключение на папката на приложението, в която се намира нашето приложение) и качих всичко, което беше в системната папка в новата версия на CodeIgniter. След това направих промените, които отбелязах в стъпка 2.

3.1 В основата трябва също да замените index.php с нов от дистрибуциятаCodeIgniter 2.0.0!!

3.2 Конфигурацията config/routes.php също има някои допълнения, така че актуализирайте (сравнявайки вашия и новия файл, като запазите настройките си).

4. След това добавих следния ред към файла .htaccess в основата на сайта:

С такъв запис казваме на сървъра, че ако не намери искания документ (а той не го намери, тъй като вече сме изтрили всичко :), тогава потребителят трябва да "предаде" файл, наречен index.htm, който се намира в корена на сайта.

5. Превърнете плъгините в помощници.

Веднага трябва да кажа, че не съм създал самостоятелно написани плъгини, така че за мен този елемент беше прост и бърз. Току-що смених обаждането на няколко места

5.1 Разгледайте по-отблизо помощниците и библиотеките (адресът на помощника е преместен в ядрото и не е необходимо да се добавя към автоматичното зареждане).

6. След това трябва да актуализирате разширенията на класа. Сега всички основни класове на CodeIgniter имат префикс CI_. Така че сега всички ваши контролери и модели трябва да разширяват съответно CI_Model и CI_Controller.

Например, вместо

7. И накрая, трябва да актуализираме извикванията на конструктора на родителския клас.

Преди версия 2.0 обаждането вървеше така:

Тъй като CodeIgniter вече е напълно мигрирал към PHP5, е необходимо да извикате конструктора на родителския клас по следния начин:

Тоест сега в контролерите и моделите трябва да направите това:

8. Осмата точка беше първата изненада.

След като направих всичко, което написах по-долу, се обърнах към сайта и видях съобщение, че за да работят нормално сесиите, трябва да посоча ключа за криптиране във файла config.php (система - приложение - config.php).

Това е настройката $config['encryption_key'] = "";

Преди това ми беше празен и всичко работеше добре. Посочих произволна стойност, коятохрумна ми, запазих промените и като се обърнах към сайта, видях това, което очаквах да видя - всичко беше както трябва. Поне на пръв поглед :)

Тъй като наистина не исках да се задълбочавам в това, отидох на официалния форум на codeigniter и там бързо намерих решение на този проблем.

Оказа се, че за да работи всичко, трябва да промените още една настройка в config.php. промених се

Ето функцията, която се превърна в препъникамък:

Трябва да погледнете в user_guide - Active Record Class и да видите, че няма такива методи като orderby и groupby: Забележка: order_by() беше известен преди като orderby(), който беше премахнат. (т.е.сегаorderby преименувано наorder_by, същото сgroupby)

Това е много важно, защото може да имате свои собствени грешки, ще видите бял екран и това ще обезсърчи всяко желание да продължите да работите с CodeIgniter (а междувременно просто моята некомпетентност в часовете доведе до грешката).

11. Бъдете подготвени за грешка при създаване и изтриване на сесия (ако използвате база данни за това) - когато използвате схема за запазване на данните за сесията в базата данни, системата извежда грешка „user_data няма стойност по подразбиране“ при изтриване и след това създаване на сесия. Не можете да направите нищо по въпроса, докато не надстроите до версия 2.1.0. Страничен бъг на двигателя )) Много нови добри покрива този бъг.

Надяваме се, че тази бележка ще бъде полезна за тези, които са изправени пред подобна задача за актуализиране на CodeIgniter.

(При подготовката на този материал много беше взето и допълнено от Дмитрий Науменко - codeinharmony.ru)

актуализация