Анонсы:
|
PHP. Урок 10 Использование классовУрок 10. Использование классов.В этом уроке изложены основы объектно-ориентированного программирования (ООП) в PHP. Вы увидите, как определяются классы и как работать с классами от сторонних разработчиков. Объектно-ориентированное программирование в PHPПри необходимости для PHP можно использовать объектно-ориентированный подход. В PHP 5 поддержка ООП существенно улучшена. Тот, кто работал с языками С++ или Java, возможно, захотят использовать ООП в PHP. А тот, кто до этого пользовался процедурными языками, возможно, не захочет использовать объекты вообще. Как видим, есть много путей, чтобы решить одну и ту же задачу. Для новичков в программировании и PHP, не имеет значения, какой подход использовать. Известно, что концепция ООПП легче усваивается теми, кто еще не программировал в процедурном стиле. Главная задача урока – дать основные понятия о том, как создаются классы в PHP. Тогда, если возникнет потребность использовать объекты, можно написать сценарий в стиле ООП. Просто "собрать" скрипт из объектов как игры лего. Но главное то, что можно использовать свободно распространяемые библиотеки классов от сторонних разработчиков. Что такое классКласс - это шаблон структуры, который задает объект. В нем могут содержаться функции, также называемые методами класса. И переменные, также называемые свойствами класса или атрибутами. Каждый класс состоит из набора PHP-выражений, задающих порядок выполнения задачи или набора задач, которые часто встречаются. Класс может содержать закрытые методы, которые используются внутри класса для выполнения внутренних функций класса, и открытые методы, через которые происходит взаимодействие с классом. В хорошо спроектированном классе внутренняя реализация скрыта. Взаимодействие с ним происходит только через открытые методы. Они представляют простой интерфейс для работы с функциональностью класса. Если связать сложные блоки кода в класс, сценарий, который его использует, не будет ничего "знать" о том, как выполняется отдельная операция. Необходим только список всех открытых методов. Сейчас есть много готовых классов от сторонних разработчиков. Поэтому не нужно тратить время на то, чтобы реализовать функциональность, которая уже свободно доступна. Когда использовать классыНужно помнить, что нет реальных преимуществ использования классов по сравнению с библиотекой функций, которая находится в отдельном файле. ООП не является лучшим подходом к программированию, это просто другой способ мышления. Методика программирования определяется только личными предпочтениями. Преимущество ООП проявляется в больших проектах, потому что позволяет легко наращивать нужную функциональность. В ООП класс может наследовать свойства других классов и расширять их. Таким образом, однажды разработанная реализация может легко изменяться для конкретного случая. Этот механизм называется наследованием и является ключевым свойством ООП. На что похожи классыКлассы — это набор различных функций и переменных. Примерно так они выглядят в PHP. Определение класса очень напоминает определение функции. Оно начинается с ключевого слова class и идентификатора, после которого следует тело класса в парных фигурных скобках ({}). Ниже приводится простой пример класса, чтобы показать, как он выглядит. Этот класс содержит только одно свойство — myValue и один метод – myMetod (который ничего не делает): Создание и использование объектовЧтобы создать экземпляр объекта определенного класса, используется ключевое слово new, как в примере ниже: Здесь myClass нужно определить в сценарии, обычно в подключаемом файле, а $myObject становиться объектом класса myClass. Множество объектов. Один и тот же класс можно использовать несколько раз в одном сценарии. Для этого нужно создавать объекты класса с новыми именами. Методы и свойстваК методам и свойствам, которые определяются в myClass, можно обратиться из объекта $myObject. Ниже приводится общий пример: Символ стрелки (->) состоит из дефиса и символа "больше чем". Он указывает на метод или свойство заданного объекта. Чтобы обратиться к текущему объекту внутри тела класса, используется специальное имя $this. Пример ниже создает myClass с методом, который обращается к одному из свойств объекта: В этом примере есть два отдельных вызова метода myMetod. В первый раз он выводит значение по умолчанию свойства myValue, которое устанавливается в определении класса. Второй вызов происходит после присваивания атрибуту нового значения. Класс использует $this, чтобы обратиться к собственному свойству. Ему не нужно знать, что в сценарии имя объекта $myObject. В классе можно создать специальный метод, именуемый конструктором. Тогда при создании объекта в круглых скобках после названия класса можно указать аргументы, и эти значения поступят на вход конструктору. Такой механизм позволяет инициализировать свойства объекта при создании. Выглядит это так: Использование классов сторонних разработчиковЛучший способ изучить работу с классами — использовать их. Рассмотрим популярную библиотеку, разработанную Мануэлем Лемосом (Manuel Lemos). Она позволяет выполнять проверку электронного адреса. Сначала нужно загрузить этот класс по адресу: www.phpclasses.org/browse/file/28.html и сохранить в файле email_validation.php. Класс Мануэля, кроме проверки почтового адреса, проверяет существование домена. После этого он соединяется с удаленным почтовым сервером, чтобы убедиться в существовании почтового ящика. Поиск домена. Чтобы использовать этот пример на Web-сервере под управлением Windows, нужно загрузить дополнительный файл getmxrr.php, который содержит поиск доменов для PHP. Он находится по адресу: www.phpclasses.org/browse/file/2080.html. В сценарии email_validation.php определяется класс email_validation_class. Первое, что нужно сделать, - создать экземпляр объекта, который выполняет проверку с именем $validator: Можно задать нужные свойства для нового класса. Некоторые нужны для корректной работы класса, а остальные позволяют изменять стандартное поведение. Для каждого объекта нужно установить свойства. Это название ящика и имени домена реального почтового адреса, от имени которого выполняется проверка. Для этих свойств нельзя задать стандартные значения, их нужно установить самому, как показано ниже: Необязательное свойство timeout задает максимальное количество секунд на ожидание соединения с удаленным почтовым сервером. Установка свойства debug позволяет увидеть на экране процесс соединения с удаленным сервером и узнать, какие запросы выполняет сценарий во время проверки. Выражение ниже устанавливает время ожидания 10 секунд и включает режим отладки: Полный список свойств настройки для объекта проверки приводится в табл. 10.1. Таблица 10.1. Свойства класса email_validation_class
Методы в классе email_validation_class в основном закрытые, к ним нельзя обращаться напрямую. Но внутренний код составляет завершенный набор функций. Рассмотрев содержимое email_validation.php, можно увидеть определение функций, таких как Tokenize, GetLine и VerifyResultLines. Но они совершенно безполезны за пределами класса, в котором определены. В объекте есть только один открытый метод под названием ValidateEmailBox, который и выполняет нужную проверку. При вызове он устанавливает в виде строки почтовый адрес, который нужно проверить. Ниже показан пример вызова ValidateEmailBox: Метод ValidateEmailBox возвращает значение, которое показывает результат проверки. Если включить режим отладки с помощью атрибута debug, кроме вывода из сценария, можно увидеть примерно следующее: РезюмеВ этом уроке вы узнали о реализации ООП в PHP и увидели, как использовать классы в собственных сценариях. В следующем уроке вы узнаете о том, как PHP взаимодействует с HTML-формами. |
Погода в Рудне на 10 Дек 2024 г. 704 - Вьетнамских донгов - 1 |