Останні 2 роки я активно використовую 2 ю версію фреймворку Codeigniter. Хоча вперше я знайомився з ним років 7 тому. Що то в ньому мене розчарувало і я почав знайомиться з symphony і Yii. Вибір припав на Yii, однак і з ним ми розійшлися через пів року. Мабуть не було достатньо досвіду в програмуванні або цілі створити свій відмінний движок. А два роки тому, мій напарник запропонував спільно написати сучасний движок і використовувати його у всіх своїх проектах, поступово витісняючи безкоштовні і платні движки зі свого життя.
Нам потрібен був гнучкий, легкий, швидкий і простий движок - потрібне дозволяв саме codeigniter. Необхідно було розділити логіку роботи всіх модулів. Зробити кожен модуль незалежним, реалізувати можливість створювати і встановлювати додаткові модулі для розробки сайту будь-якої складності і масштабу. При цьому необхідно думати так само про хлопців, яким в майбутньому доведеться мати справу з цим движком після нас і швидко розібратися в коді і логіці всіх методів і контролерів. Висновок - необхідно було замінити стандартний модель-вид-контролер - ієрархічним.
Це буквально вирішувало всі проблеми і надало мені - перш небаченої розкоші в програмуванні. Нам більше не потрібно піклуватися про роботу основних бібліотек сайту і покласти на плечі codeigniter всю логіку роботи з поштою, сесіями, кошиком і іншими.
Ми тепер - продумуємо логіку програми, і з заготовками вирішуємо її в 5 разів швидше, ніж нам довелося б писати весь код на чистому PHP. Загалом давайте протестуємо останню версію старого фреймворка Codeigniter і встановимо модульне розширення.
Отже: завантажуємо останню на даний момент версію CodeIgniter 3.0.2. Розпаковуємо в архів з нашим новим сайтом, на локальному сервері я назвав його ci3.ru. Створюємо базу даних ci3 і вказуємо в конфіги ім'я логін і пароль до MySQL - папка 'application / config / database.php'. Запускаємо і спостерігаємо вітальне вікно.
Перш ніж приступити до установки розширення, давайте налаштуємо додаток для зручної подальшої роботи.
3) Копіюємо дві папки модульного розширення (core, third_party) в папку сайту / application.
4) Давайте трохи змінимо шлях зберігання модулів. За замовчуванням папка modules зберігається в папці application. Але я вважаю за краще винести папку модулів, зображень, скриптів і шаблонів в корінь сайту, і використовувати папку aplication в крайніх випадках, для гнучкості роботи програми. Відкриємо ще раз наш конфігураційний файл application / config / config.php і додамо в кінець файлу наступний код:
5) Спробуємо скористатися нашим додатком на практиці:
- Створюємо папку modules в корені сайту
- В папці modules створюємо папку welcome - це наш перший модуль welcome, код якого візьмемо з привітального повідомлення CodeIgniter
- Скопіюйте папку controllers і views з папки application в папку modules / welcome. Можна видалити зайві файли, нам потрібен тільки контролер і вьюха welcome_message.php
- Видаляємо старі файли контролера і виду з папки application
- Запускаємо сайт ci3.ru/welcome - Все працює!
Ну і це ще не все. Давайте винесемо папку з шаблонами в корінь сайту. Скажіть як зручно розробляючи front-end - чи не розшукують файли шаблону по папках а правити і зберігати всі файли в одному місці. Давайте додамо невелику функцію в контролер персонального завантажувача application / core / MY_Loader.php
Створимо папку themes в корені сайту і скопіюємо в нього наш вітальний шаблон, додавши приставку _hmvc.php. Напишемо нову функцію в контролері модуля Welcome
Запускаємо, перевіряємо. працює ;-) Тепер ми можемо зберігати файли шаблонів як в папці з модулем (зручно для розробки бекенд додатки) так і в загальнодоступному місці themes - для фронденда.
Поляков Є.
Ян, спасибі велике за приємні відгуки!
Вивчення фреймворка - у мене викликало такі почуття - наче починаєш зустрічатися з новою дівчиною і закохуєшся в неї по вуха, і вже не уявляєш життя без неї. ось те ж саме можу оцінити фреймворк codeigniter. Він мене просто розбурхав на довгі дні і ночі в розробці унікальних і універсальних модулів. Загалом пробуйте ;-)
Так я поставив обмеження - що б ім'я складалося мінімум з 3-х букв. Потрібно прибрати напевно) Дякую
Сам розбираюся з 4-ма фреймворками по черзі - CodeIgniter, Yii, Laravel, Symfony. Якраз модульности з коробки (HMVC) в ньому не вистачає в першу чергу. CodeIgniter хоч і повільно розвивається зате дуже швидкий, простий, зрозумілий і займає Малов місця. Замість архівів з кодами потрібно було створити окремий репозиторій на GitHub. Так було б простіше оріентіроватся в змінах.
Євген! Питання початківця програміста. У вас сайт вантажиться близько 2 сек, це означає, що кешування в Codeigniter не дуже ефективно?
спасибі за статтю. При установці на CI 3.1.3 виникло кілька помилок: Fatal error: Call to undefined method MY_Loader :: _ ci_object_to_array () in C: \ xampp \ htdocs \ codeigniter \ application \ third_party \ MX \ Loader.php on line 300. Лікується додаванням You can add it back to Loader.php protected function _ci_object_to_array ($ object)