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

Первая 1 2 3 4 5 6 7 Последняя

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

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

Дата: 23-02-2012

Kohana

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

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

Сайт Актуба

http://kohanaframework.su/

http://brotkin.ru

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

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

 


Категория: Kohana

Установка 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:


        
            
        
 

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


Категория: Kohana

Серверные переменные PHP. Суперглобальный массив $_SERVER.

Дата: 12-02-2012

PHP содержит ряд суперглобальных массивов, которые доступны из любой части скрипта.

Массив $_SERVER

Просмотреть его можно, например, при помощи дампа массива - print_r($_SERVER) или phpinfo();

Наиболее часто используемые:

$_SERVER['HTTP_HOST'] - Имя сервера, которое, как правило, совпадает с доменным именем сайта, расположенного на сервере. Как правило, имя, указанное в данном параметре совпадает с именем $_SERVER['SERVER_NAME'].
$_SERVER['HTTP_USER_AGENT'] - Отдает информацию о типе броузера и операционной системы посетителя. Например, Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0.1) Gecko/20100101 Firefox/8.0.1
$_SERVER['HTTP_ACCEPT'] - Содержание заголовка ACCEPT. Например, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
$_SERVER['HTTP_ACCEPT_LANGUAGE'] - Содержание заголовка Accept-Language. Напимер, en-us,en;q=0.7,ru;q=0.3
$_SERVER['HTTP_ACCEPT_ENCODING'] - Содержание заголовка Accept-Encoding, если он есть. Например, gzip, deflate
$_SERVER['HTTP_ACCEPT_CHARSET'] - Содержание заголовка Accept-Charset. Например, ISO-8859-1,utf-8;q=0.7,*;q=0.7
$_SERVER['HTTP_CONNECTION'] - Содержание заголовка Connection. Например, keep-alive
$_SERVER['HTTP_CACHE_CONTROL'] - Содержание заголовка Connection. Например, max-age=0
$_SERVER['PATH'] - /sbin:/usr/sbin:/bin:/usr/bin
$_SERVER['SERVER_SIGNATURE'] - Описание веб-сервера. Например, Apache/2.2.15 (CentOS) Server at 194.189.70.48 Port 80
$_SERVER['SERVER_SOFTWARE'] - Веб-сервер. Ответ: Apache/2.2.15 (CentOS)
$_SERVER['SERVER_NAME'] - Имя сервера, как правило, совпадающее с доменным именем сайта. Например, site.com, 194.411.70.48
$_SERVER['SERVER_ADDR'] - IP-адрес сервера. Например, 192.168.1.156
$_SERVER['SERVER_PORT'] - Порт работы веб-сервера. Например, 80
$_SERVER['REMOTE_ADDR'] - Удаленный адрес клиента. Например, 192.168.1.1
$_SERVER['DOCUMENT_ROOT'] - Корневая директория в которой находится скрипт. Например, /var/www/http/
$_SERVER['SERVER_ADMIN'] - Адрес администратора сервера. Например, admin@gmail.com
$_SERVER['SCRIPT_FILENAME'] - Абсолютный путь к скрипту от корня ОС. Например, /var/www/http/php/index.php
$_SERVER['REMOTE_PORT'] - Порт удаленного клиента. Например, 56415
$_SERVER['GATEWAY_INTERFACE'] - Версия интерфейса Common Gateway Interface (CGI), который используется в работе сервера. Например, CGI/1.1
$_SERVER['SERVER_PROTOCOL'] - Описание версии протокола, используемой сервером. Например, HTTP/1.1
$_SERVER['REQUEST_METHOD'] - Метод запроса, который применяется для вызова скрипта: GET или POST. Например, GET
$_SERVER['QUERY_STRING'] - Параметры, переданные скрипту, если строка запроса представляет собой адрес.
$_SERVER['REQUEST_URI'] - Имя скрипта, начиная от корневой директории виртуального хоста и параметры, т.е. если строка запроса представляет собой адрес. Например, /php/
$_SERVER['SCRIPT_NAME'] - Значение пути к скрипту от корня адреса. Например, /catalog/index.php
$_SERVER['PHP_SELF'] - Имя скрипта, начиная от корневой директории виртуального хоста, т.е. если строка запроса представляет собой адрес http://site.com/php/index.php, то ответ будет: /php/index.php
$_SERVER['REQUEST_TIME'] - Время старта скрипта в формате timestamp. Например, 1331575390


Категория: PHP

Паролирование директории c помощью .htaccess

Дата: 15-11-2011

Для паролирования директории предлагается способ, использующий файлы .htaccess и файл, содержащий пароли и логины пользователей, которым разрешен доступ к данной папке.

Папка может быть как корневой, так и любой другой.

В основном данный метод применим для хостингов, у которых у вас нет доступа к серверной консоли.

Суть:

1.  Создаем файл с паролем в винде:

Заливаем в любую папку на домашней win-системе программу htpasswd.zip. Рапаковываем, например в директорию C:/

> cd c:/ - переход в папку =)

>htpasswd -cm .htpasswd admin , где admin - это имя юзера, который будет иметь досутп к папке. .htpasswd - имя файла с паролями. Рекомендуется закидывать его в папки верхнего уровня над директорей самого сайта, к которым нет доступа извне.

Далее, просит заполнить и подтвердить пароли для них.

2. После этого узнаем абсолютный путь к папке с файлом паролей, с помощью:

$_SERVER['DOCUMENT_ROOT']

3.  Далее в .htaccess пишем:

AuthType Basic  
AuthName "Auth zone!"
AuthUserFile  /usr/host/mysite/.htpasswd  
require valid-user

 

AuthUserFile - это абсолютный путь к файлу паролей.

Все.

 


Категория: Apache

Первая 1 2 3 4 5 6 7 Последняя