Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Kohana 3.2 - Власний блог крок за кроком - Частина 1 - Блог сибірського прогерія

  1. 1. Постановка завдання
  2. Панель Адміністратора:
  3. 3. Установка і настройка фреймворка Kohana 3.2

Вітаю вас мої вельмишановні читачі

Вітаю вас мої вельмишановні читачі! Цією статтею я починаю цикл статей по створенню блогу на улюбленому мною фреймворку Kohana 3.

Відразу хотів би зазначити, про те, що в цих статтях я не буду пояснювати основи побудови веб додатків, а так же html, css і php. Основна моя мета познайомити вас з фреймворком Kohana 3, а так само дати вам приклад того як треба писати програми на Kohana 3.2.

І так приступимо ...

1. Постановка завдання

Як видно із заголовка ця частина статті присвячена опису завдання, яку ми будемо вирішувати протягом усього циклу статей. І так що ж буде вміти робити наш додаток?

Панель Адміністратора:

  1. Зміна налаштувань блогу (зміна).
  2. Управління користувачами (Додавання, Видалення, Зміна, Налаштування прав).
  3. Управління тегами (Додавання, Видалення, Зміна).
  4. Управління рубриками деревовидної структури (Додавання, Видалення, Зміна).
  5. Управління постами (Додавання, Видалення, Зміна, Попередній перегляд).
  6. Модерування коментарів (Видалення, Зміна).

Публічна частина блогу:

  1. Висновок постів в форматі списку анонсів
    1. На головній (Від нових до старих)
    2. Рубрики постів (Від нових до старих)
    3. Тега поста (Від нових до старих)
  2. Введення сторінки поста
  3. Додавання коментарів до посту

2. Проектування БД

Для проектування БД я звик використовувати інструмент MySQL Workbench, тому я просто покажу вам вийшла схему структури БД у вигляді скріншоту або ви можете завантажити її в місці, з вихідними кодами в кінці статті.

Дана Тузла дозволяє нам зробити експорт моделі БД в sql скрипт або імпортувати структуру БД на сервер безпосередньо зробите це відразу, БД знадобиться нам далі.

3. Установка і настройка фреймворка Kohana 3.2

Як локального сервера я буду використовувати DENWER (нічого особистого просто я до нього звик).

Для початку скачайте фремворк kohana 3.2 c офіційного сайту тут і розпакуємо вміст архіву в кореневу директорію localhost.

2 c офіційного сайту   тут   і розпакуємо вміст архіву в кореневу директорію localhost

Я сподіваюся, що ви вже запустили локальний сервер і localhost у вас доступний з браузера. Давайте відкриємо в браузері http: // localhost /. Якщо ви бачите те, що представлено на зображенні нижче, то вам пощастило, і сервер у вас задовольняє цим вимогам фреймворка в іншому випадку вам потрібно доводити конфігурацію сервера до розуму що як ви, напевно, здогадалися виходить за рамки поточної статті і пояснюватися тут не буде.

Якщо ви бачите те, що представлено на зображенні нижче, то вам пощастило, і сервер у вас задовольняє цим вимогам фреймворка в іншому випадку вам потрібно доводити конфігурацію сервера до розуму що як ви, напевно, здогадалися виходить за рамки поточної статті і пояснюватися тут не буде

Наступним кроком нам потрібно видалити всяке сміття з кореня (install.php, LICENSE.md, README.md) і перейменувати файл example.htaccess в .htaccess, в результаті ми отримаємо:

htaccess, в результаті ми отримаємо:

Від сміття, який міг нас "видати" ми позбулися і тепер нам потрібно налаштувати додаток. Для цього відкриваємо файл application \ bootstrap.php в улюбленому текстовому редакторі (якщо вам цікаво, то я використовую PHPStorm 3) і налаштовуємо приблизно так:

&lt;? Php defined ( 'SYSPATH') or die ( 'No direct script access.'); // - Environment setup -------------------------------------------- ------------ // Load the core Kohana class require SYSPATH.'classes / kohana / core'.EXT; if (is_file (APPPATH.'classes / kohana'.EXT)) {// Application extends the core require APPPATH.'classes / kohana'.EXT; } Else {// Load empty core extension require SYSPATH.'classes / kohana'.EXT; } / ** * Set the default time zone. * * @See http://kohanaframework.org/guide/using.configuration * @see http://php.net/timezones * / date_default_timezone_set ( 'Asia / Krasnoyarsk'); / ** * Set the default locale. * * @See http://kohanaframework.org/guide/using.configuration * @see http://php.net/setlocale * / setlocale (LC_ALL, 'ru_RU.utf-8'); / ** * Enable the Kohana auto-loader. * * @See http://kohanaframework.org/guide/using.autoloading * @see http://php.net/spl_autoload_register * / spl_autoload_register (array ( 'Kohana', 'auto_load')); / ** * Enable the Kohana auto-loader for unserialization. * * @See http://php.net/spl_autoload_call * @see http://php.net/manual/var.configuration.php#unserialize-callback-func * / ini_set ( 'unserialize_callback_func', 'spl_autoload_call'); // - Configuration and initialization ----------------------------------------- / * * * Set the default language * / I18n :: lang ( 'ru-ru'); / ** * Set Kohana :: $ environment if a 'KOHANA_ENV' environment variable has been supplied. * * Note: If you supply an invalid environment name, a PHP warning will be thrown * saying "Could not find constant Kohana :: <INVALID_ENV_NAME>" * / if (isset ($ _ SERVER [ 'KOHANA_ENV'])) {Kohana :: $ environment = constant ( 'Kohana ::'. strtoupper ($ _ SERVER [ 'KOHANA_ENV'])); } / ** * Initialize Kohana, setting the default options. * * The following options are available: * * - string base_url path, and optionally domain, of your application NULL * - string index_file name of your index file, usually "index.php" index.php * - string charset internal character set used for input and output utf-8 * - string cache_dir set the internal cache directory APPPATH / cache * - boolean errors enable or disable error handling TRUE * - boolean profile enable or disable internal profiling TRUE * - boolean caching enable or disable internal caching FALSE * / Kohana :: init (array ( 'base_url' => '/',)); / ** * Attach the file write to logging. Multiple writers are supported. * / Kohana :: $ log-> attach (new Log_File (APPPATH.'logs ')); / ** * Attach a file reader to config. Multiple readers are supported. * / Kohana :: $ config-> attach (new Config_File); Kohana :: $ config-> attach (new Config_Database); / ** * Enable modules. Modules are referenced by a relative or absolute path. * / Kohana :: modules (array ( 'auth' => MODPATH.'auth ', // Basic authentication //' cache '=> MODPATH.'cache', // Caching with multiple backends // 'codebench' => MODPATH.'codebench ', // Benchmarking tool' database '=> MODPATH.'database', // Database access // 'image' => MODPATH.'image ', // Image manipulation' orm '=> MODPATH.' orm ', // Object Relationship Mapping //' unittest '=> MODPATH.'unittest', // Unit testing // 'userguide' => MODPATH.'userguide ', // User guide and API documentation)); / ** * Set the routes. Each route must have a minimum of a name, a URI and a set of * defaults for the URI. * / Route :: set ( 'default', '(<controller> (/ <action> (/ <id>)))') -> defaults (array ( 'controller' => 'welcome', 'action' = > 'index',));

На наступному кроці нам потрібно налаштувати з'єднання з БД для чого копіюємо файл з директорії modules \ database \ config \ database.php в application \ config \ database.php і вносимо в нього свої настройки для підключення до БД.

&lt;? Php defined ( 'SYSPATH') or die ( 'No direct access allowed.'); return array ( 'default' => array ( 'type' => 'mysql', 'connection' => array (/ ** * The following options are available for MySQL: * * string hostname server hostname, or socket * string database database name * string username database username * string password database password * boolean persistent use persistent connections? * array variables system variables as "key => value" pairs * * Ports and sockets may be appended to the hostname. * / 'hostname' = > 'localhost', 'database' => 'kohana_blog', 'username' => 'root', 'password' => FALSE, 'persistent' => FALSE,), 'table_prefix' => '', 'charset' => 'utf8', 'caching' => FALSE, 'profiling' => TRUE,),);

Ну, ось власне і все що від нас вимагалося, на цьому прекрасному моменті я хотів би закінчити цю статтю, до зустрічі в наступних статтях, в яких ми перейдемо безпосередньо до розробки програми.

Завантажити вихідні коди уроку.

І так що ж буде вміти робити наш додаток?
Lt;?

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.