14:31

MySQL 5

Houston, we have a problem.
Самоучитель - Кузнецов М.В., Симдянов И.В. - MySQL 5 [2006, DjVu, RUS]
http://rutracker.org/forum/viewtopic.php?t=2101828

@темы: MySQL, БД, Учебники, Ссылки

Houston, we have a problem.

Исключения



Для реализации механизма исключений в РНР введены следующие ключевые
слова: try (контролировать), throw (генерировать) и catch (обрабатывать).



Если в теле контролируемого блока исключение генерируется
при помощи ключевого слова throw, то интер­претатор РНР
переходит в саtсh-обработчик.

Интерфейс класса Exception




@темы: PHP

Houston, we have a problem.

Статические члены класса


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




Статические методы класса


Статическими можно объявлять не только члены, но и методы класса. Для
объявления статического метода также используется ключевое слово static,
а для обращения к методу - оператор разрешения области видимости :: .

Константы класса


Наряду с членами классы могут содержать константы, которые определяются
при помощи ключевого слова const.


Finаl-методы клаccа


Методы, объявленные в ба­зовом классе с ключевым словом final,
не могут быть перегружены в производном классе.

Finаl-классы


Класс, объявленный при помощи ключевого сло­ва final, не может иметь наследников.

Клонирование объекта


Для создания копии текущего объекта используется специальная операция - клонирование.
Оно выполняется при помощи ключевого слова clone,
кото­рое располагается непосредственно перед объектом клонирования

Управление процессом клонирования.


Метод __clone() вызывается, когда выполняется клонирование объекта.


Сериализация объектов


Для сохранения объекта в формате, который позволял бы его восстанавли­вать
впоследствии, часто прибегают к сериализации: переводу объекта в
строку при помощи функции serialize ().

Такая строка может быть сохра­нена в файл или базу данных,
после чего сохраненный объект можно полу­чить при помощи обратной функции unserialize ().

class.cls.php


использование



Управление сериализацией.
Методы __sleep() и __wakeup()



Два специальных метода, которые могут быть перегружены в классе: метод __sleep(),
который вызывается, когда объект подвергается сериализации при помощи
функции serialize (); и метод __wakeup(), который вызывается при восстановлении
объекта при помощи функции unserialize(). Оба метода не при­нимают никаких параметров.

__sleep()


class.user.php


использование


__wakeup()


class.user.php


@темы: PHP

Houston, we have a problem.

Полиморфизм


При использовании разветвленных наследственных иерархий все объекты
производных классов автоматически снабжаются методам и базового класса.
Производные классы могут использовать методы базового класса без
изменений, адаптировать их или заменять своей собственной реализацией. Как бы
ни были реализованы эти методы, можно достоверно утверждать, что все
объекты наследственной иерархии классов будут обладать некоторым
коли­чеством методов с одними и теми же названиями. Это явление называется
полиморфизмом.


Абстрактные классы


Для этого объявление класса предваряют ключевым словом abstract.


Абстрактные методы


В объектно-ориентированной модели РНР преду­смотрены абстрактные
методы, объявление которых предваряется ключевым
словом abstract. Для абстрактных методов задают их описание и список
параметров без реализации. Каждый класс, который наследуется от базового
класса, содержащего абстрактные методы, обязан их реализовать. Если хотя бы
один метод не реализован - работа РНР-скрипта будет остановлена, а
интерпретатор сообщит о необходимости реализации абстрактного метода в
произ­водном классе. При помощи абстрактных методов исключается возможность
неумышленного нарушения полиморфизма для производных классов.

Наличие в классе абстрактного метода требует, чтобы класс также был объявлен абстрактным.


Создание интерфейса
Интерфейс полностью состоит из абстрактных методов.

Классы задают поведение объектов, а интерфейсы ­
поведение группы классов . Класс, реализующий интерфейс, должен перегру­зить
методы интерфейса. Два класса, реализующих одинаковые интерфейсы,
имеют одинаковый набор определяемых ими методов. Таким образом, назначение
интерфейса - это реализация полиморфизма для двух классов, не
имеющих общего базового класса.
Для создания интерфейса используется ключевое слово interface.

Для создания класса, реализующего интерфейс, используется ключевое слово implements.

Класс может реализовывать любое количество интерфейсов;
для этого достаточно перечислить их через запятую после клю­чевого слова implements.

Интерфейсы, так же как и классы, могут наследовать друг другу при помощи
ключевого слова extends.

@темы: PHP

Houston, we have a problem.

Перегрузка методов



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

class.base.php


использование


Однако в рамках производного класса остается возможность вызвать метод
базового класса, обратившись к нему при помощи префикса parent::

class.base.php


использование


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

@темы: PHP

Houston, we have a problem.

Наследование



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

При объявлении производного класса необходимо
указать имя базового класса с помощью ключевого слова extends.

class.base.php


использование


Из производного класса доступны все методы и члены, объявленные со
спецификатором доступа public, и не доступны компоненты, объявленные
как private.

class.base.php


использование


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

class.base.php


использование


@темы: PHP

13:31

Houston, we have a problem.
12:31 

Доступ к записи ограничен

Houston, we have a problem.
Закрытая запись, не предназначенная для публичного просмотра

Houston, we have a problem.

Экспорт объектов


Функция var_export ()




Убирать последнюю запятую из дампа объекта приходится вручную


По отношению к объекту функция var_export ( ) действует несколько иным
образом : поскольку невозможно предугадать заранее код, который бы
воспроизводил объект, функция возвращает код вызова специального метода
__set_state ( ), разработкой которого должен озаботиться автор класса.



Альтернативная реализация класса cls, в которой метод
__set_state () собирает и возвращает новый объект.


@темы: PHP

Houston, we have a problem.
Хостинг (платный и бесплатный)
http://www.timeweb.ru/

@темы: Хостинг, Ссылки

Houston, we have a problem.
Houston, we have a problem.
Hg Init: Часть 3. Привыкаем работать в команде
http://habrahabr.ru/post/108904/

@темы: Mercurial, Habrahabr, Ссылки

Houston, we have a problem.
Большая картинка по центру при различных разрешениях, без использования background (CSS)
http://jsfiddle.net/pn5J2/

@темы: HTML, Верстка, CSS, Ссылки

If it's stupid but works, it isn't stupid.

Специальные методы класса



__construct() конструктор

__destructor() деструктор

__autoload() автоматическая загрузка класса при создании его объекта

__set() сеттер

__ get() геттер

__isset() проверка существует ли

__unset() удаление

__call() динамический метод

__toString()

__set_state() экспорт объекта

__clone() клонирование объекта

__sleep() позволяет управлять поведением объекта при его cериализации при помощи функции serialize()

__wakeup() позволяет управлять поведением объекта при восстановлении из сериализованного состояния при помощи функции unserialize()

РНР не поддерживает перегрузку методов - создание нескольких разных конструкторов (или других методов) с разным количеством аргументов.

__toString() позволяет подставлять объект в строку (нужно использовать двойные кавычки)


class.employee.php


использование


@темы: PHP

Объявление класса


Класс должен объявляться в непрерывном блоке


Создание объекта класса


Объект существует до конца времени выполнения скрипта или пока не будет уничтожен явно при помощи конструкции unset ()



Спецификаторы доступа
public
private
protected


Класс class.employee.php


Его использование в файле index.php


Член $this
Член $this, который неявно присутствует в каждом классе, являет­ся ссылкой на текущий объект класса.

Добавление методов в класс


Использование методов класса


Дамп объекта
Функция print_r () служит для анализа текущего состояния объекта



Результат


@темы: PHP

Houston, we have a problem.
http://lesscss.ru/

LESS: программируемый язык стилей
http://habrahabr.ru/post/136525/

@темы: Верстка, LESS, CSS, Habrahabr, CSS3, Ссылки

Houston, we have a problem.
If it's stupid but works, it isn't stupid.
If it's stupid but works, it isn't stupid.

jQuery DOM Manipulation



Get

text() - Sets or returns the text content of selected elements
html() - Sets or returns the content of selected elements (including HTML markup)
val() - Sets or returns the value of form fields

http://jsfiddle.net/RW6z7/2/

Set
http://jsfiddle.net/RW6z7/9/

Валидация формы


http://jsfiddle.net/S7224/27/
http://jsfiddle.net/S7224/28/
http://jsfiddle.net/S7224/38/


Add Elements



  • append() - Inserts content at the end of the selected elements

  • prepend() - Inserts content at the beginning of the selected elements

  • after() - Inserts content after the selected elements

  • before() - Inserts content before the selected elements


append()
Вставляет новое содержимое внутрь выбранного селектора после всего его содержимого
http://jsfiddle.net/8dGWX/2/

prepend()
Вставляет новое содержимое внутрь выбранного селектора перед всем его содержимым
http://jsfiddle.net/8dGWX/4/

Методы append() и prepend() могут принимать много аргументов в качестве параметров, новые элементы могут быть сгенерированы с помощью text/HTML, jQuery, Javasсript
http://jsfiddle.net/9K74f/1/

Методы after() и before()
The jQuery after() method inserts content AFTER the selected HTML elements.

The jQuery before() method inserts content BEFORE the selected HTML elements.
http://jsfiddle.net/9K74f/6/

Методы after() и before() могут принимать много аргументов в качестве параметров, новые элементы могут быть сгенерированы с помощью text/HTML, jQuery, Javasсript
http://jsfiddle.net/9K74f/9/

@темы: jQuery, jQuery Учебка, Ссылки

If it's stupid but works, it isn't stupid.
C# Ваше первое NHibernate приложение
http://www.gotdotnet.ru/blogs/msnet-developer/13364/

@темы: NHibernate, Ссылки