http://rutracker.org/forum/viewtopic.php?t=2101828
воскресенье, 05 января 2014
Houston, we have a problem.
Самоучитель - Кузнецов М.В., Симдянов И.В. - MySQL 5 [2006, DjVu, RUS]
http://rutracker.org/forum/viewtopic.php?t=2101828
http://rutracker.org/forum/viewtopic.php?t=2101828
Houston, we have a problem.
Исключения
Для реализации механизма исключений в РНР введены следующие ключевые
слова: try (контролировать), throw (генерировать) и catch (обрабатывать).
Если в теле контролируемого блока исключение генерируется
при помощи ключевого слова throw, то интерпретатор РНР
переходит в саtсh-обработчик.
Интерфейс класса Exception
суббота, 04 января 2014
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
четверг, 02 января 2014
Houston, we have a problem.
Полиморфизм
При использовании разветвленных наследственных иерархий все объекты
производных классов автоматически снабжаются методам и базового класса.
Производные классы могут использовать методы базового класса без
изменений, адаптировать их или заменять своей собственной реализацией. Как бы
ни были реализованы эти методы, можно достоверно утверждать, что все
объекты наследственной иерархии классов будут обладать некоторым
количеством методов с одними и теми же названиями. Это явление называется
полиморфизмом.
Абстрактные классы
Для этого объявление класса предваряют ключевым словом abstract.
Абстрактные методы
В объектно-ориентированной модели РНР предусмотрены абстрактные
методы, объявление которых предваряется ключевым
словом abstract. Для абстрактных методов задают их описание и список
параметров без реализации. Каждый класс, который наследуется от базового
класса, содержащего абстрактные методы, обязан их реализовать. Если хотя бы
один метод не реализован - работа РНР-скрипта будет остановлена, а
интерпретатор сообщит о необходимости реализации абстрактного метода в
производном классе. При помощи абстрактных методов исключается возможность
неумышленного нарушения полиморфизма для производных классов.
Наличие в классе абстрактного метода требует, чтобы класс также был объявлен абстрактным.
Создание интерфейса
Интерфейс полностью состоит из абстрактных методов.
Классы задают поведение объектов, а интерфейсы
поведение группы классов . Класс, реализующий интерфейс, должен перегрузить
методы интерфейса. Два класса, реализующих одинаковые интерфейсы,
имеют одинаковый набор определяемых ими методов. Таким образом, назначение
интерфейса - это реализация полиморфизма для двух классов, не
имеющих общего базового класса.
Для создания интерфейса используется ключевое слово interface.
Для создания класса, реализующего интерфейс, используется ключевое слово implements.
Класс может реализовывать любое количество интерфейсов;
для этого достаточно перечислить их через запятую после ключевого слова implements.
Интерфейсы, так же как и классы, могут наследовать друг другу при помощи
ключевого слова extends.
Houston, we have a problem.
Перегрузка методов
в производном классе можно создать метод с таким же названием, что и в
базовом классе, который заменит метод базового класса при вызове. Такая
процедура называется перегрузкой методов.
class.base.php
использование
Однако в рамках производного класса остается возможность вызвать метод
базового класса, обратившись к нему при помощи префикса parent::
class.base.php
использование
Таким образом, при помощи перегрузки метода можно как расширить метод
базового класса, так и полностью заменить его уже новым методом.
среда, 01 января 2014
Houston, we have a problem.
Наследование
Наследование позволяет создать новый класс на основе уже существующего,
автоматически включив в новый класс все члены и методы старого. В рамках
наследования "старый" класс называется базовым, а вновь создаваемый
класс - производным.
При объявлении производного класса необходимо
указать имя базового класса с помощью ключевого слова extends.
class.base.php
использование
Из производного класса доступны все методы и члены, объявленные со
спецификатором доступа public, и не доступны компоненты, объявленные
как private.
class.base.php
использование
Иногда удобно, чтобы член или метод базового класса, оставаясь закрытым
для внешнего кода, был открыт для производного класса. В этом случае
прибегают к специальному спецификатору доступа protected. Компоненты
класса, снабженные спецификатором доступа protected, называют защищенными.
class.base.php
использование
пятница, 27 декабря 2013
Houston, we have a problem.
12:31
Доступ к записи ограничен
Houston, we have a problem.
Закрытая запись, не предназначенная для публичного просмотра
среда, 25 декабря 2013
Houston, we have a problem.
Экспорт объектов
Функция var_export ()
Убирать последнюю запятую из дампа объекта приходится вручную
По отношению к объекту функция var_export ( ) действует несколько иным
образом : поскольку невозможно предугадать заранее код, который бы
воспроизводил объект, функция возвращает код вызова специального метода
__set_state ( ), разработкой которого должен озаботиться автор класса.
Альтернативная реализация класса cls, в которой метод
__set_state () собирает и возвращает новый объект.
вторник, 24 декабря 2013
Houston, we have a problem.
пятница, 20 декабря 2013
Houston, we have a problem.
среда, 18 декабря 2013
Houston, we have a problem.
вторник, 17 декабря 2013
Houston, we have a problem.
Большая картинка по центру при различных разрешениях, без использования background (CSS)
http://jsfiddle.net/pn5J2/
http://jsfiddle.net/pn5J2/
среда, 11 декабря 2013
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
использование
Объявление класса
Класс должен объявляться в непрерывном блоке
Создание объекта класса
Объект существует до конца времени выполнения скрипта или пока не будет уничтожен явно при помощи конструкции unset ()
Спецификаторы доступа
public
private
protected
Класс class.employee.php
Его использование в файле index.php
Член $this
Член $this, который неявно присутствует в каждом классе, является ссылкой на текущий объект класса.
Добавление методов в класс
Использование методов класса
Дамп объекта
Функция print_r () служит для анализа текущего состояния объекта
Результат
Класс должен объявляться в непрерывном блоке
Создание объекта класса
Объект существует до конца времени выполнения скрипта или пока не будет уничтожен явно при помощи конструкции unset ()
Спецификаторы доступа
public
private
protected
Класс class.employee.php
Его использование в файле index.php
Член $this
Член $this, который неявно присутствует в каждом классе, является ссылкой на текущий объект класса.
Добавление методов в класс
Использование методов класса
Дамп объекта
Функция print_r () служит для анализа текущего состояния объекта
Результат
Houston, we have a problem.
Houston, we have a problem.
вторник, 10 декабря 2013
If it's stupid but works, it isn't stupid.
понедельник, 09 декабря 2013
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/
четверг, 05 декабря 2013
If it's stupid but works, it isn't stupid.