Объектно-ориентированное программирование на PHP

<< Назад  Главная Партнерство Купить Контакты WEB Связь Электроника Энергетика Строительство Заработок

 

Объектно-ориентированная парадигма вещь хорошая. Так получилось, что со скриптовыми языками она не у всех ассоциируется. Это первая статья по ООП+PHP. Так сказать, вводная. Первая часть.

В чем главная идея?

Вообще объектно-ориентированное программирование само по себе не всегда является простым, однако главная идея, лежащая в основе, достаточно проста:

Основная цель объектно-ориентированного программирования — связать вместе данные (в виде переменных) с кодом, который работает с этими данными.

Вместо того, чтобы иметь одно большое месиво переменных и одно большое месиво кода, ООП позволяет разбить вашу проблему на более мелкие (и в идеале более организованные) связки переменных и кода. Эти связки могут работать вместе для достижения нужного результата. Если вы классно сделаете свою работу, то у вас появится возможность использовать эти связки в других проектах, что позволит сэкономить время и силы.

Кое-что мы уже осознали: ООП само по себе не позволит вам сделать чего-то того, чего вы не могли сделать с месивом кода и переменных, оно просто является более организованным методом программирования. И если вы чем-то похожи на меня, то ваши PHP-скрипты должны использовать всю помощь, которую может предоставить отдел организации:

Например, вас достало кодировать соединение с базой данных каждый раз, когда вы разрабатываете новый динамический сайт на базе PHP и MySQL. Вы можете объединить все переменные (username, password, hostname, database name, etc.) и весь код (соединение с базой данных, выбор базы данных, проверка ошибок) в единственный пакет, который называется объектом. Затем вы можете использовать этот объект для обеспечения взаимодействия с базой данных в любом проекте.

Не будьте квадратными

Вообще-то квадрат сам по себе вещь тривиальная, но его можно использовать для достаточно простого стартового примера.

Допустим, какой-нибудь школьник, у которого плохо с геометрией, заплатил вам, чтобы вы написали PHP-скрипт для вычислений базовых параметров прямоугольника. Рынок обвалился, вы не имеете возможности выбирать, так что взялись за эту работу.

Начали вы с простейшей HTML-формы, чтобы школьник мог вводить ширину и высоту прямоугольника.

<form action="domyhomework.php" method="get">
Width: <input type="text" name="w" /><br />
Height: <input type="text" name="h" /><br />
<input type="submit" />
</form>

Скрипт domyhomework.php должен просто брать высоту и ширину и вычислять параметры прямоугольника:

<?php
$area = $w * $h;
$perimeter = ($w + $h) * 2;
?>
<html>
<body>
<p>Width: <?=$w?><br />
Height: <?=$h?></p>
<p>Area: <?=$area?><br />
Perimeter: <?=$perimeter?></p>
</body>
</head>

Просто и красиво. Но если вы вдруг приобретете репутацию крутого спеца по написанию скриптов для прямоугольника (ну мало ли что…), то вам должно быть скоро надоесть писать код для вычисления периметра и площади снова и снова.

Если вы знакомы с функциями, то вы возможно решите написать две функции для этих вычислений и поместить их в отдельный файл. Допустим, вы назвали файл rect.php, и содержит он вот что:

<?php
function rect_area($width,$height)
{
return $width * $height;
}
function rect_perim($width,$height)
{
return ($width + $height) * 2;
}
?>

Сейчас вы можете использовать эти функции в любом файле, где это необходимо. Тогда domyhomework.php изменится и станет выглядеть следующим образом:

<?php
require('rect.php'); // присоединяются функции для расчета параметров прямоугольника
$area = rect_area($w,$h);
$perimeter = rect_perim($w,$h);
?>
<html>
<body>
<p>Width: <?=$w?><br />
Height: <?=$h?></p>
<p>Area: <?=$area?><br />
Perimeter: <?=$perimeter?></p>
</body>
</head>

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