Последние записи

Посты по категории -> Kohana

ORM Kohana examples

Дата: 27-02-2012

Небольшой конспект по ORM.

ORM (англ. Object-relational mapping, рус. Объектно-реляционное отображение) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». http://ru.wikipedia.org/wiki/ORM

Основное достоинство ORM:
ORM избавляет программиста от написания большого количества кода, часто однообразного и подверженного ошибкам, тем самым значительно повышая скорость разработки. Кроме того, большинство современных реализаций ORM позволяют программисту при необходимости самому жёстко задать код SQL-запросов, который будет использоваться при тех или иных действиях (сохранение в базу данных, загрузка, поиск и т. д.) с постоянным объектом.

Использование ORM:

1. Раскомментить в bootstrap.php:

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
	));

2. Правила!

Например в БД есть таблица 'peoples' - таблица должна быть названа во множественном числе.
А модель должна быть в единственном, т.е. /clasess/model/people.php

Внутри код подобный этому:

defined('SYSPATH') or die('No direct script access.');

class Model_People extends ORM {
    
    protected $_table_name = 'peoples';
    
    protected $_primary_key = 'people_id';
    
}

Если указывать имя таблицы явно

protected $_table_name = 'peoples';

То имя таблицы необязательно должно совпадать с именем модели.

Таблица должна обязательно иметь primary_key - id, если он отличается от id - то нужно указать его явно protected $_primary_key = 'people_id';  

3. Работа с данными в ORM

Допустим у нас есть в таблице поля: `peоple_id`, `name`, `age`.

Добавление данных:

$people = ORM::factory('people');
$people->name = 'Batman';
$people->age = '32';
$people->save(); // Сохранение записи

Удаление данных:

Например, необходимо удалить данные с people_id = 3

$d = ORM::factory('people', 3);
if ($d->loaded()) // Проверка на существование записи в таблице с id равным 3
{
    $d->delete(); // Удаление записи
}


Update данных:

$people = ORM::factory('people', $id); // где $id - id записи, которую мы хотим редактировать
$people->name = 'Batman';
$people->age = '35';
$people->save(); // Сохранение записи

/* Равнозначно запросу:
UPDATE `people` 
SET  `name`='Batman', `age`=35 
WHERE `people_id`=$id 
*/ 

Работа со связанными данными:
Связи: 
Один-к-одному (has_one) 
Один-ко-многим (has_many)
Принадлежность (belongs_to)
Многие-ко-многим (has_many "through")

Для того, чтобы указать связи связи в модели нужно указать их. Пример:

Class Model_Name extends ORM {
protected $_belongs_to /* указываем тип связи */ = array(
       '[alias name]'   => array(
       'model'            => '[model_name]',
       'foreign_key'   => '[column_name]',
        )
    );
 
}

Ссылки по Kohana для начинающих

Дата: 23-02-2012

Kohana

Официальный сайт  Kohana

Форум официального сайта

Сайт Актуба

http://kohanaframework.su/

http://brotkin.ru

http://www.sdelaysite.com/tag/php — Курс Морковина по Kohana

http://ruslan.cc/ — Блог разработчика с практическими примерами 

 


Установка CKeditor 3.6.2 в Кohana 3.2

Дата: 12-02-2012

Скачиваем со страницы http://ckeditor.com/download последнюю версию CKeditor (на момент написания поста 3.6.2). Ссылка http://download.cksource.com/CKEditor/CKEditor/CKEditor%203.6.2/ckeditor_3.6.2.zip

Устанавливаем в папку со скриптами /media/js/fckeditor

Подключаем скрипт в контроллере:

$this->template->scripts = array('media/js/ckeditor/ckeditor.js');

Выводим в view:


        
            
        
 

В форме где нужно вставить редактирование текста пишем: