воскресенье, 20 марта 2011 г.

Ubuntu: Устанавливаем и настраиваем MySQL

Немного о установке и настройке MySQL сервера на Ubuntu.

Сам процесс установки не является чем-то сложным (если не рассматривать сборку из исходников связки Apache + PHP + MySQL, хотя и это несложно :) ) устанавливаются пакеты и немного правятся файлы конфигурации.

среда, 9 февраля 2011 г.

Kohana 3.1: Руководство по обновлению и миграции

Изменения в классе Request

Класс Request был разделён на два класс Request и Response. Для установки ответа вы использовали:

$this->request->response = 'foo';

Оно было изменено на:

$this->response->body('foo');

Некоторые свойста существовавшие в классе Request были преобразованы в методы класса:

Request::$controller -> Request::controller()
Request::$action -> Request::action()
Request::$directory -> Request::directory()
Request::$uri -> Request::uri()

Request::instance() был заменен на Request::current() и Request::initial(). Обычно вы будете использовать Request::current(), но если вы уверены что хотите оригинальный запрос (когда запущен HMVC), используйте Request::initial()


Изменения в классе Validation

Класс проверки был улучшен для включения поддержки "контекста", из-за этого изменился API. Кроме того класс был разделён: ядро логики проверки теперь отделено от встроенных правил проверки. Новый класс ядра называется Validation, а правила расположены в классе Valid.


Проверка контекста

Класс проверки теперь содержит поддержку "контекста". Это позволило объединить методы rule() и callback(), и в теперь это просто метод rule() который может использоваться в обоих случаях.

Старый вариант использования:

rule('password', 'matches', array('repeat_password'))

Новый вариант использования:

rule('password', 'matches', array(':validation', 'password', 'repeat_password'))

Третий параметр содержит все параметры которые должны пройти проверку правилом. Если взглянуть на Valid::matches(), то увидим:

public static function matches($array, $field, $match)

:validation первый параметр, 'password' - второй (поле которое мы хотим проверить) и 'repeat_password' это третье (которое мы хотим сравнить)

:validation это специальная переменная "контекста" которая указывает классу Validation о замене текущего класса проверки. Таким образом правила matches() не отличаются от callback() в работе, но более мощные. Есть и другие контекстные переменные:

:validation - Объект проверки

:field - Имя поля (rule('username', 'min_length', array(':field', 4)))

:value - Значение поля

Можно использовать любую php функцию, если она возвращает логическое значение.


Куки salt

Класс Cookie вызывает исключение, если salt не установлена, по умолчанию salt не установлена. Вы должны убедиться, что установили salt в файле инициализации (bootstrap.php):

Cookie::$salt = 'foobar';

Или определить расширение класса Cookie в вашем приложении:

class Cookie extends Kohana_Cookie
{
    public static $salt = 'foobar';
}

Изменение конструктора контроллера

Если по какой-то причине вы хотите изменить свой конструктор контроллера, он изменился на:

public function __construct(Request $request, Response $response)

Изменения index.php и bootstrap.php

Основным изменением стало удаление запроса из bootstrap.php и перенос его в index.php. Это позволит использовать один файл инициализации для выполнения тестирования. Причина изменения в том, что инициализации выполняет только установку среды, она не должна запускать её.


Обработка 404

Теперь Kohana имеет встроенную поддержку исключения для 404 и других кодов статуса HTTP. Если вы использовали ReflectionException для обнаружения 404, то сейчас должны использовать Http_Exception_404. Подробности обработка ошибок

Kohana 3.1

Вышел новый релиз фреймворка Kohana 3.1. Вместе со сменой версии произошли изменения API, поэтому необходимо провести миграцию приложений на новый API, если вы хотите использовать его для существующих приложений.

  1. Скачать
  2. Изменения
  3. Руководство пользователя

Также следует отметить, что этот релиз означает начало конца поддержки 3.0.x. В течении 6 месяцев в 3.0.x не будет исправлений ошибок и новых релизов. Когда выйдет 3.2.0 (летом 2011), 3.0.x больше не будет поддерживаться, 3.1.x будет поддерживаться в течении одного года, после этого релиза (выход 3.3.0 будет означать конец поддержки 3.1.x)

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

суббота, 5 февраля 2011 г.

Kohana 3: Работа с моделью

Мы уже более-менее разобрались с двумя компонентами архитектуры MVC, остался третий M - Model (Модель).

Модель - это PHP класс предназначенный для работы с информацией предоставленной или запрошенной контроллером. Например у вас есть гостевая книга, контроллер передаёт запрос в модель на получение последних десяти записей, модель возвращает эти записи контроллеру, который может передать эти данные в отображение. Контроллер так же может посылать новые записи в модель, обновлять или удалять существующие.

Проще говоря, модель занимается обработкой и управлением данными.

суббота, 29 января 2011 г.

Kohana 3: Примеры из руководства

В связи с тем, что в примерах руководства по Kohana 3 становиться всё больше файлов, я начал их выкладывать на google code.

svn checkout http://dev-mark.googlecode.com/svn/trunk/dev-mark/Kohana3-tutorial Kohana3-tutorial

Что бы не захламлять репозитарий выкладываются только те файлы, которые используются в руководстве. То есть, нужно предварительно установить фреймворк Kohana 3, а затем в него скопировать файлы руководства.

Имена каталогов с файлами руководства обозначаются по принципу: tutorial_XX, где XX - номер руководства.

Каталоги с дополнениями к руководству именуются по такому же принципу, только вместо номера руководства будет название дополения. Например каталог с файлами для Kohana 3: Установка под Ubuntu будет называться 'tutorial_ubuntu'

Структура содержимого папок с файлами руководства:

kohana - каталог с файлами фреймворка для проекта, файлы расположены в соответствующих каталогах

webroot - DocumentRoot проекта

Kohana 3: Работа с контроллерами

В прошлой части мы познакомились с отображениями, в этой части мы будем расширять классы Controller, что позволит нам создавать шаблоны для сайтов. Шаблон - обычное отображение которое более или менее базируется на (X)HTML коде. Это позволит содержать наши отображения в рамках DRY или DIE принципа разработки.

воскресенье, 23 января 2011 г.

Kohana 3: Установка под Ubuntu

Раскопав в закромах немного старого железа, было решено взгромоздить всё это дело Ubuntu и использовать под небольшой www сервер.

В Kohana 3: Первые шаги я обещал рассказать о процеесе установки фреймворка Kohana 3 под linux, чем далее и займусь.

понедельник, 10 января 2011 г.

Kohana 3: Работа с отображениями

В предыдущей части Kohana 3: Первые шаги мы научились устанавливать фреймворк из репозитария, настраивать index.php, создавать контроллер, создавать метод вызываемый по умолчанию и немного общаться с внешним миром. В этой части мы познакомимся с отображениями (views), научимся передавать данные в отображения, работать с вложенными отображениями и переменными отображений.

Используется несколько вариантов перевода View на русский язык, в основном используется три: представление, вид или отображение. Я буду использовать отображение, мне оно привычнее.

пятница, 7 января 2011 г.

Kohana 3: Первые шаги

Давно хотелось по плотнее взяться за фреймворк Kohana, тем более что сталкиваться с ним приходилось, а нормально по работать не удалось. Будем считать, что начнётся изучение с нуля, но базовые знания настроек Apache и программирования на php уже имеются. Так как линуксового сервера под рукой нет, то будем использовать WinXp с установленным XAMPP, но к линуксовому серверу вернёмся по позже, как я его до собираю (скорее всего будет ubuntu server).

У нас имеется XAMPP 1.7.3 установленный в c:\xampp

  • Apache 2.2.14 c:\xampp\apache
  • PHP 5.3.1 c:\xampp\php
  • MySQL 5.1.41. c:\xampp\mysql

среда, 5 января 2011 г.

Vim: Параметры отступов и типы файлов

Разные типы файлов могут требовать разных настроек отступов. Например в YAML-файле для отступов используется пробелы, в Make-файле - табуляция, а в Python-файле - 4 пробела. Эти настройки можно устанавливать автоматически в зависимости от типа файлов.

вторник, 4 января 2011 г.

CSS: Всё о float

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