Объективно-ориентированное программирование на PHP (+СD) Объективно-ориентированное программирование на PHP (+СD) Книга предоставляет наиболее полное описание объектно-ориентированных возможностей РНР. Предполагается, что читатель знаком с базовыми возможностями PHP, языком разметки HTML и приемами работы с СУБД MySQL. Даны основы объектно-ориентированного подхода: классы, специальные методы классов, инкапсуляция, наследование и полиморфизм, интерфейсы, статические, константные и final члены класса, особенности клонирования и длительного хранения объектов, обработка исключений и др. Рассмотрена практика объектно-ориентированного программирования на примерах - от построения собственного Framework (набора классов, облегчающих разработке Web-приложений) и до создания собственной объектно-ориентированной системы управления контентом (CMS). На прилагаемом компакт-диске находятся исходные коды всех Web-приложений, рассматриваемых в книге. BHV 978-5-9775-0142-2
349 руб.
Russian
Каталог товаров

Объективно-ориентированное программирование на PHP (+СD)

Временно отсутствует
?
  • Описание
  • Характеристики
  • Отзывы о товаре
  • Отзывы ReadRate
Книга предоставляет наиболее полное описание объектно-ориентированных возможностей РНР. Предполагается, что читатель знаком с базовыми возможностями PHP, языком разметки HTML и приемами работы с СУБД MySQL. Даны основы объектно-ориентированного подхода: классы, специальные методы классов, инкапсуляция, наследование и полиморфизм, интерфейсы, статические, константные и final члены класса, особенности клонирования и длительного хранения объектов, обработка исключений и др. Рассмотрена практика объектно-ориентированного программирования на примерах - от построения собственного Framework (набора классов, облегчающих разработке Web-приложений) и до создания собственной объектно-ориентированной системы управления контентом (CMS). На прилагаемом компакт-диске находятся исходные коды всех Web-приложений, рассматриваемых в книге.
Отрывок из книги «Объективно-ориентированное программирование на PHP (+СD)»
Глава 5
Интерфейсы

Наследование и полиморфизм являются центральными идеями объектно-ориентированного анализа, позволяя наиболее эффективно организовать код для
иерархических систем. Обычно в реальной практике используются лишь конечные производные классы, базовые классы иерархии необходимы лишь для сокрытия реализации и формирования общего интерфейса производных классов.
В результате базовые классы зачастую становятся абстрактными, т.е. классами, которые определяют поведение производных классов, однако объектов, которых попросту нельзя объявить (даже если бы их можно было объявить, нормально функционировать они не смогли бы). Абстрактные классы зачастую содержат абстрактные методы без реализации, реализовать которые должны их потомки.
В PHP существует ещё абстрактная конструкция — интерфейс — конструкция, состоящая полностью из абстрактных методов. Класс, реализующий интерфейс,
должен перегрузить методы интерфейса. Два класса, реализующих одинаковые интерфейсы имеют одинаковый набор методов, определяемых интерфейсом. Таким
образом, назначение интерфейса — это реализация полиморфизма для двух классов, не имеющих общего базового класса.


5.1. Создание интерфейса

Для создания интерфейса используется ключевое слово interface. В листинге 5.1 демонстрируется создание интерфейса pager, для реализации набора классов
постраничной навигации, рассматривавшихся в главе 4. Напомним, что классы,реализующие постраничную навигацию должны содержать следующие методы:

Оставить заявку на описание
?
Содержание
Введение 9
Благодарности 10
Глава 1. Введение в объектно-ориентированное программирование 11
1.1. Причины возникновения объектно-ориентированной технологии 11
1.2. Какая программа является объектно-ориентированной? 13
1.3. О важности обозначений 16
1.4. Терминология 18
1.5. Повторное использование кода 20
1.6. Недостатки объектно-ориентированного подхода 22
1.7. Объектно-ориентированное программирование в PHP 24
Глава 2. Объекты и классы 25
2.1. Объявление класса 25
2.2. Абстрактные типы данных. Создание объекта 28
2.3. Инкапсуляция. Спецификаторы доступа 30
2.4. Методы класса. Член $this 34
2.5. Динамическое создание методов и членов 43
2.6. Рекурсивные методы 46
2.7. Является ли переменная объектом? 47
2.8. Использование методов без объектов 49
2.9. Дамп объекта 51
2.10. Вложенные объекты 53
2.11. Массив объектов 57
2.12. Преобразование объекта в массив 62
2.13. Возвращение методом нескольких значений 67
2.14. Необязательные аргументы методов 70
2.15. Присваивание одного объекта другому 72
2.16. Сравнение объектов друг с другом 74
2.17. Уничтожение объекта 77
Глава 3. Специальные методы классов 80
3.1. Конструктор. Метод __construct() 81
3.2. Параметры конструктора 83
3.3. Закрытый конструктор 86
3.4. Деструктор. Метод __destruct() 88
3.5. Создание реальных объектов 92
3.6. Автозагрузка классов. Функция __autoload() 100
3.7. Проверка существования класса 101
3.8. Определение принадлежности объекта к классу 104
3.9. Аксессоры. Методы __set() и __get() 107
3.10. Проверка существования члена класса. Метод __isset() 113
3.11. Уничтожение члена класса. Метод __unset() 118
3.12. Динамические методы. Метод __call() 120
3.13. Проверка существования метода 123
3.14. Интерполяция объекта. Метод __toString() 127
3.15. Экспорт переменных. Метод __set_state() 130
Глава 4. Инкапсуляция, наследование, полиморфизм 136
4.1. Инкапсуляция 136
4.2. Наследование 142
4.3. Конструкторы, деструкторы и наследование 148
4.4. Спецификаторы доступа и наследование 153
4.5. Перегрузка методов 156
4.6. Определение имени базового класса 158
4.7. Полиморфизм 162
4.8. Файловая постраничная навигация 168
4.9. Постраничная навигация и поиск 174
4.10. Постраничная навигация для директории 178
4.11. Постраничная навигация для базы данных 183
4.12. Изменение формата постраничной навигации 190
4.13. Абстрактные классы 193
4.14. Абстрактные методы 195
Глава 5. Интерфейсы 200
5.1. Создание интерфейса 200
5.2. Интерфейсы и наследование классов 202
5.3. Реализация нескольких интерфейсов 204
5.4. Проверка существования интерфейса 205
5.5. Наследование интерфейсов 207
5.6. Реализует ли объект интерфейс? 209
Глава 6. Статические и константные элементы класса 213
6.1. Статические члены класса 213
6.2. Эмуляция транзакций при помощи статических членов 216
6.3. Наследование и статические члены 222
6.4. Статические методы класса 223
6.5. Константы класса 224
6.6. Предопределенные константы 225
6.7. Самоидентификация объектов 227
6.8. Final-методы класса 229
6.9. Final-классы 231
Глава 7. Клонирование и серилизация объектов 233
7.1. Клонирование объекта 233
7.2. Управление процессом клонирования. Метод __clone() 236
7.3. Клонирование вложенного класса 238
7.4. Серилизация объектов 241
7.5. Передача объектов через сессию 244
7.6. Сохранение объектов в СУБД MySQL 246
7.7. Управление серилизацией. Методы __sleep() и __wakeup() 248
7.8. Автоматическое сохранение объекта в СУБД MySQL 256
Глава 8. Обработка ошибок и исключения 264
8.1. Синтаксис исключений 265
8.2. Интерфейс класса Exception 267
8.3. Генерация исключений в функциях 271
8.4. Стек обработки исключительной ситуации 275
8.5. Генерация исключений в классах 277
8.6. Генерация исключений в иерархиях классов 281
8.7. Использование объекта класса Exception в строковом контексте 284
8.8. Создание собственных исключений 285
8.9. Создание новых типов исключений 289
8.10. Перехват исключений производных классов 291
8.11. Что происходит, когда исключения не перехватываются? 294
8.12. Вложенные контролируемые блоки 295
8.13. Повторная генерация исключений 298
Глава 9. Отражения 301
9.1. Иерархия классов отражения 301
9.2. Отражение функции. Класс ReflectionFunction 302
9.3. Отражение параметра функции. Класс ReflectionParameter 307
9.4. Отражение класса. Класс ReflectionClass 310
9.5. Отражение объекта. Класс ReflectionObject 317
9.6. Отражение метода класса. Класс ReflectionMethod 318
9.7. Отражение члена класса. Класс ReflectionProperty 320
9.8. Исключения механизма отражения 323
9.9. Отражение расширения. Класс ReflectionExtension 324
9.10. Вспомогательный класс Reflection 327
Глава 10. Набор классов. Framework 329
10.1. Требования к набору классов 332
10.2. HTML-форма и ее обработчик 334
10.3. Обработка исключительных ситуаций 340
10.4. Базовый класс field 343
10.5. Текстовое поле. Класс field_text 347
10.6. Класс form 352
10.7. Пример HTML-формы 357
10.8. Поле для пароля. Класс field_password 365
10.9. Поле для ввода английского текста. Класс field_text_english 368
10.10. Поле для ввода целых чисел. Класс field_text_int 369
10.11. Поле для ввода электронной почты. Класс field_text_email 372
10.12. Текстовая область. Класс field_textarea 374
10.13. Скрытое поле. Класс field_hidden 384
10.14. Скрытое поле для целых значений. Класс field_hidden_int 388
10.15. Флажок. Класс field_checkbox 395
10.16. Список. Класс field_select 398
10.17. Переключатели. Класс field_radio 403
10.18. Поле для загрузки файла на сервер. Класс field_file 408
10.19. Заголовок. Класс field_title 413
10.20. Параграф. Класс field_paragraph 418
10.21. Выбор даты и времени. Класс field_datetime 421
10.22. Обзор элементов управления 427
Глава 11. Создание системы управления сайтом (CMS) 428
11.1. Структура системы управления сайтом (CMS) 429
11.2. Общие файлы системы администрирования 435
11.3. Ограничение доступа к системе администрирования 440
11.4. Блок новости 456
11.4.1. База данных 456
11.4.2. Система администрирования 457
11.4.3. Система представления 476
11.5. Управления статьями и меню 482
11.5.1. База данных 483
11.5.2. Система администрирования 491
11.5.3. Система представления 531
Заключение 545
Приложение 1. Предопределенные классы 549
П1.1. Библиотека php_mysqli 549
П1.1.1. Создание базы данных 557
П1.1.2. Создание и заполнение таблицы 558
П1.1.3. Заполнение связанных таблиц 559
П1.1.4. Вывод данных 563
П1.1.5. Повторное чтение результирующей таблицы 564
П1.1.6. Количество строк в таблице 565
П1.1.7. Удаление данных 566
П1.1.8. Сортировка 568
П1.1.9. Параметризация SQL-запросов 571
П1.2. Класс dir 572
П1.3. Библиотека SPL 575
П1.3.1. Итераторы 576
П1.3.2. Интерфейс Iterator 578
П1.3.3. Класс DirectoryIterator 581
П1.3.4. Класс FilterIterator 583
П1.3.5. Класс LimitIterator 584
П1.3.6. Рекурсивные итераторы 585
Приложение 2
. Список функций для работы с классами и объектами 587
Приложение 3. Описание компакт-диска 590
Рекомендуемая литература 591
HTML, XML, CSS, JavaScript и Flash 593
PHP и Perl 596
СУБД MySQL 598
Интернет и Web-сервер Apache 599
Регулярные выражения 600
UNIX-подобные операционные системы 601
Методология программирования 603
Предметный указатель 605
Штрихкод:   9785977501422
Аудитория:   Общая аудитория
Бумага:   Офсет
Масса:   570 г
Размеры:   234x 167x 1 мм
Тираж:   3 000
Литературная форма:   Научно-практическое пособие
Сведения об издании:   1-е полное издание
Тип иллюстраций:   Черно-белые
Отзывы
Найти пункт
 Выбрать станцию:
жирным выделены станции, где есть пункты самовывоза
Выбрать пункт:
Поиск по названию улиц:
Подписка 
Введите Reader's код или e-mail
Периодичность
При каждом поступлении товара
Не чаще 1 раза в неделю
Не чаще 1 раза в месяц
Мы перезвоним

Возникли сложности с дозвоном? Оформите заявку, и в течение часа мы перезвоним Вам сами!

Captcha
Обновить
Сообщение об ошибке

Обрамите звездочками (*) место ошибки или опишите саму ошибку.

Скриншот ошибки:

Введите код:*

Captcha
Обновить