Шлях від новачка до профі: розробка CMS на фреймворку Kohana 3.3

Років п'ять тому підсів на розробку сайтів, причому чисто з інтересу до вебу. Хотілося усвідомити, як їх робити і робити краще, ніж інші. Починалося все це, як і для більшості розробників, з простого знання HTML, CSS і, звичайно, популярних CMS, таких як Joomla, Wordpress і Data Life Engine. По мірі зростання доводилося заглиблюватися в Javascript і, звичайно, мій улюблений зараз PHP. Але все йшло не так швидко, як хотілося. Тренуючись на простому, хотілося зрозуміти складні речі. PHP спочатку погано давалася, але характер взяв гору і все ж через деякий час написав щось ніби схоже на міні-соціальну мережу.

Ну а потім пішло-поїхало: ООП, MVC і, нарешті, настав час підкорювати фреймворки. На той момент найбільш відомими для мене були Zend, Kohana і CodeIgniter. Пізніше дізнався проSymphony та YII. Вибір припав на Kohana, т. к. для новачка було простіше в освоєнні і з нормальною документацією. Ну і недоліків в принципі для себе не бачив у цьому фреймворку.

У вільний від основної роботи час я освоював Kohana на простих прикладах чисто для розширення кругозору і розширення знань в області ООП. Але так склалися обставини, що в міру роботи з іншими CMS доводилося розвиватися і пробувати щось самому, використовуючи ту саму Kohana.

Мета була одна — стати хорошим програмістом і займатися тим, чим подобається.

Пропустимо місяці і роки зростання. Нарешті я вирішив випустити свої напрацювання у світ у вигляді повноцінної CMS на фреймворку Kohana в безкоштовний доступ під назвою Oxidos CMS версії 1.0.0.

Головні критерії:
  • Швидка швидкість роботи;
  • Простота розширення функціоналу;
  • Зручність використання і адміністрування;
  • Родзинка CMS;
  • Універсальність.


Основним натхненником була CMS Opencart. Подобається її структура і зручність використання. Любителям Opencart можливо прийде по смаку моя CMS, т. к. є схожа структура і візуальна частина.

Отже, що ми маємо.

Основні можливості:


  • Додавання мультиязычного контенту;
  • Додавання категорій необмеженої вкладеності (використовується алгоритм Nested Sets);
  • Додавання новин, статей та статичних сторінок;
  • Використовується ЧПУ (завдяки роутам Kohana);
  • Використовується ORM і Query Builder. Дозволяє підключити CMS не тільки до Mysql;
  • Розмежування прав доступу на кожен компонент адмінки;
  • Статистика в адмінці від Google Analytics;
  • Можливість змінювати шаблони;
  • Можливість вибору модуля кешування даних;
  • Можливість завантажувати зображення;
  • Можливість формування файлу Sitemap.xml;
  • Можливість додавання нових віджетів, а також можливість розширення функціоналу не на шкоду продуктивності;
  • Та інші компоненти, з якими можна ознайомитись на сайті.


Що ховається під капотом:
  • Kohana 3.3 — є ядром CMS. Це означає, що будь-хто, що знає концепцію MVC або HMVC може без зусиль зрозуміти, як все працює. Особливо просто все буде «коханщикам»;
  • Twitter Bootstrap 3 — фреймворк використовується для шаблону адмінки. Дуже мені сподобалося з ним працювати, а особливо при використанні LESS. Вихідні коди доступні для подальшої зміни стилів. Надалі планується і видиму частину сайту переробити на нього;
  • Summernote — текстовий редактор в адмінці, також використовує Bootstrap компоненти. Дуже зручний у налаштуванні та використанні;
  • Jstree 3 — бібліотека для подання дерева з каталогів і файлів. Використовується в файловому менеджері;
  • Ну і звичайно популярні бібліотеки jQuery і jQuery UI.


Системні вимоги:
  • Веб сервер (бажаний Apache);
  • PHP (починаючи з 5.3.3);
  • Curl включений;
  • База даних MySQL (починаючи з 4.1);
  • Розширення MySQLi;
  • Розширення IonCube (оскільки закодовано 2 файлу: Core.php і Encrypt.php в цілях безпеки).


В ході навчання і розробки пізнається багато нового і цікавого і, тим самим, це сприяє подальшому розвитку і зростання.

Мета даної статті — познайомити вас з ще одним інструментом, який можливо буде цікавий або цілком, або його окремо взятими частинами.

Висновок
Oxidos CMS — безкоштовна багатомовна система управління контентом для створення сайтів-візиток, блогів і порталів. Буде цікава любителям Opencart і розробникам сайтів, а також розробникам власних проектів.

Буду радий, якщо спільнота «хабра» хоч якось відреагує на CMS і дасть поради або критику. Готовий визнати, що CMS не досконала, як і більшість інших перших версій продуктів, але прагне до цього потрібно. Помилки та поради допоможуть розвиватися мені далі як програмісту.

Посилання на проект:


Посилання на використовувані бібліотеки і фреймворки:


P. S. Хочу висловити подяку натхненникам і вчителям, які мені допомогли отримати знання і розібратися в цій нелегкій справі:
  1. Школі програмування (ШП)
  2. Іллі Кантору (автору проекту javascript.ru)
  3. Daniel Kerr (розробнику opencart.com)
  4. Проектом Kohanaframework

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.