| Наши книги | Объектно-ориентированное программирование на PHP Объектно-ориентированное программирование на PHP Представляем Вашему вниманию книгу "Объектно-ориентированное программирование на PHP", написанную сотрудниками нашей студии Кузнецовым Максимом Валерьевичем и Симдяновым Игорем Вячеславовичем.
Начинающие и опытные программисты часто задаются вопросом: что дает объектно-ориентированное программирование? Освоив его, получу ли я какое-то конкурентное преимущество по сравнению с другими разработчиками? Если для объектно-ориентированных языков программирования, таких как Java или C++, ответ однозначен, то в Web-среде, больше ориентированной на процедурный стиль, ответить на этот вопрос не так просто. Между тем все большее количество библиотек переходит на объектно-ориентированный интерфейс, вынуждая разработчиков обращаться к объектно-ориентированным возможностям PHP. Введение в пятой версии PHP полноценной объектно-ориентированной модели еще больше подогревает интерес к этой методологии. Книга, которую вы держите в руках, позволяет найти ответ на вопросы: зачем нужно объектно-ориентированное программирование в PHP, когда его следует применять, а когда его применение не целесообразно и даже вредно. Зачастую использование объектно-ориентированного подхода к месту и не к месту не обязательно делает проект успешным. Программирование новичка в стиле объектно-ориентированного программирования часто напоминает передвижение по минному полю — если не знать где мины, достичь конца проекта невозможно. Само по себе объектно-ориентированное программирование не является панацеей — это рабочая технология, которая позволяет:
- увеличить процент повторно используемого кода
- оперировать при программировании понятиями и объектами реального мира (договор, заключение договора, распечатка договора, поиск договора), а не низкоуровневыми компьютерными терминами (файлы, строка, стандартный поток вывода), что позволяет создавать более крупные проекты с меньшим количеством ошибок и в более сжатые сроки.
Предлагаемая книга рассматривает объектно-ориентированное программирование применительно к PHP, раскрывая его методологическую часть. Будет определено, в каком случае следует взять за основу объектно-ориентированный подход в PHP, а в каком — лучше от него отказаться. На примере построения большого Web-приложения (CMS) демонстрируется, как добиться повторного использования кода в реальных проектах.
Исходные коды всех приложений, рассмотренных в книге "Объектно-ориентированное программирование на PHP". Новые версии набора класса SoftTime FrameWork, а также сопутствующих Web-приложений можно обнаружить в разделе Downloads.
Страница, посвящённая книге на сайте издательства
Заказать книгу в интернет-магазине Ozon
Содержание Оглавление Введение Благодарности
Глава 1. Введение в объектно-ориентированное программирование 1.1. Причины возникновения объектно-ориентированной технологии 1.2. Какая программа является объектно-ориентированной? 1.3. О важности обозначений 1.4. Терминология 1.5. Повторное использование кода 1.6. Недостатки объектно-ориентированного подхода 1.7. Объектно-ориентированное программирование в PHP
Глава 2. Объекты и классы 2.1. Объявление класса 2.2. Абстрактные типы данных. Создание объекта 2.3. Инкапсуляция. Спецификаторы доступа 2.4. Методы класса. Член $this 2.5. Динамическое создание методов и членов 2.6. Рекурсивные методы 2.7. Является ли переменная объектом? 2.8. Использование методов без объектов 2.9. Дамп объекта 2.10. Вложенные объекты 2.11. Массив объектов 2.12. Преобразование объекта в массив 2.13. Возвращение методом нескольких значений 2.14. Необязательные аргументы методов 2.15. Присваивание одного объекта другому 2.16. Сравнение объектов друг с другом 2.17. Уничтожение объекта
Глава 3. Специальные методы классов 3.1. Конструктор. Метод __construct() 3.2. Параметры конструктора 3.3. Закрытый конструктор 3.4. Деструктор. Метод __destruct() 3.5. Создание реальных объектов 3.6. Автозагрузка классов. Функция __autoload() 3.7. Проверка существования класса 3.8. Определение принадлежности объекта к классу 3.9. Аксессоры. Методы __set() и __get() 3.10. Проверка существования члена класса. Метод __isset() 3.11. Уничтожение члена класса. Метод __unset() 3.12. Динамические методы. Метод __call() 3.13. Проверка существования метода 3.14. Интерполяция объекта. Метод __toString() 3.15. Экспорт переменных. Метод __set_state()
Глава 4. Инкапсуляция, наследование, полиморфизм 4.1. Инкапсуляция 4.2. Наследование 4.3. Конструкторы, деструкторы и наследование 4.4. Спецификаторы доступа и наследование 4.5. Перегрузка методов 4.6. Определение имени базового класса 4.7. Полиморфизм 4.8. Файловая постраничная навигация 4.9. Постраничная навигация и поиск 4.10. Постраничная навигация для директории 4.11. Постраничная навигация для базы данных 4.12. Изменение формата постраничной навигации 4.13. Абстрактные классы 4.14. Абстрактные методы
Глава 5. Интерфейсы 5.1. Создание интерфейса 5.2. Интерфейсы и наследование классов 5.3. Реализация нескольких интерфейсов 5.4. Проверка существования интерфейса 5.5. Наследование интерфейсов 5.6. Реализует ли объект интерфейс?
Глава 6. Статические и константные элементы класса 6.1. Статические члены класса 6.2. Эмуляция транзакций при помощи статических членов 6.3. Наследование и статические члены 6.4. Статические методы класса 6.5. Константы класса 6.6. Предопределенные константы 6.7. Самоидентификация объектов 6.8. Final-методы класса 6.9. Final-классы
Глава 7. Клонирование и серилизация объектов 7.1. Клонирование объекта 7.2. Управление процессом клонирования. Метод __clone() 7.3. Клонирование вложенного класса 7.4. Серилизация объектов 7.5. Передача объектов через сессию 7.6. Сохранение объектов в СУБД MySQL 7.7. Управление серилизацией. Методы __sleep() и __wakeup() 7.8. Автоматическое сохранение объекта в СУБД MySQL
Глава 8. Обработка ошибок и исключения 8.1. Синтаксис исключений 8.2. Интерфейс класса Exception 8.3. Генерация исключений в функциях 8.4. Стек обработки исключительной ситуации 8.5. Генерация исключений в классах 8.6. Генерация исключений в иерархиях классов 8.7. Использование объекта класса Exception в строковом контексте 8.8. Создание собственных исключений 8.9. Создание новых типов исключений 8.10. Перехват исключений производных классов 8.11. Что происходит, когда исключения не перехватываются? 8.12. Вложенные контролируемые блоки 8.13. Повторная генерация исключений
Глава 9. Отражения 9.1. Иерархия классов отражения 9.2. Отражение функции. Класс ReflectionFunction 9.3. Отражение параметра функции. Класс ReflectionParameter 9.4. Отражение класса. Класс ReflectionClass 9.5. Отражение объекта. Класс ReflectionObject 9.6. Отражение метода класса. Класс ReflectionMethod 9.7. Отражение члена класса. Класс ReflectionProperty 9.8. Исключения механизма отражения 9.9. Отражение расширения. Класс ReflectionExtension 9.10. Вспомогательный класс Reflection
Глава 10. Набор классов. Framework 10.1. Требования к набору классов 10.2. HTML-форма и ее обработчик 10.3. Обработка исключительных ситуаций 10.4. Базовый класс field 10.5. Текстовое поле. Класс field_text 10.6. Класс form 10.7. Пример HTML-формы 10.8. Поле для пароля. Класс field_password 10.9. Поле для ввода английского текста. Класс field_text_english 10.10. Поле для ввода целых чисел. Класс field_text_int 10.11. Поле для ввода электронной почты. Класс field_text_email 10.12. Текстовая область. Класс field_textarea 10.13. Скрытое поле. Класс field_hidden 10.14. Скрытое поле для целых значений. Класс field_hidden_int 10.15. Флажок. Класс field_checkbox 10.16. Список. Класс field_select 10.17. Переключатели. Класс field_radio 10.18. Поле для загрузки файла на сервер. Класс field_file 10.19. Заголовок. Класс field_title 10.20. Параграф. Класс field_paragraph 10.21. Выбор даты и времени. Класс field_datetime 10.22. Обзор элементов управления
Глава 11. Создание системы управления сайтом (CMS) 11.1. Структура системы управления сайтом (CMS) 11.2. Общие файлы системы администрирования 11.3. Ограничение доступа к системе администрирования 11.4. Блок новости 11.4.1. База данных 11.4.2. Система администрирования 11.4.3. Система представления 11.5. Управления статьями и меню 11.5.1. База данных 11.5.2. Система администрирования 11.5.3. Система представления
ЗаключениеПриложение 1. Предопределенные классы П1.1. Библиотека php_mysqli П1.1.1. Создание базы данных П1.1.2. Создание и заполнение таблицы П1.1.3. Заполнение связанных таблиц П1.1.4. Вывод данных П1.1.5. Повторное чтение результирующей таблицы П1.1.6. Количество строк в таблице П1.1.7. Удаление данных П1.1.8. Сортировка П1.1.9. Параметризация SQL-запросов П1.2. Класс dir П1.3. Библиотека SPL П1.3.1. Итераторы П1.3.2. Интерфейс Iterator П1.3.3. Класс DirectoryIterator П1.3.4. Класс FilterIterator П1.3.5. Класс LimitIterator П1.3.6. Рекурсивные итераторы
Приложение 2. Список функций для работы с классами и объектамиПриложение 3. Описание компакт-дискаРекомендуемая литература HTML, XML, CSS, JavaScript и Flash PHP и Perl СУБД MySQL Интернет и Web-сервер Apache Регулярные выражения UNIX-подобные операционные системы Методология программирования
|