Конструктор PHP і екземпляри створеного класу Драконів

28

Від автора: ОВП! І Дракони біля ніг моїх сіли! Які Дракони? Екземпляри класу Dragon. Для їх створення я використовував конструктор PHP. Спокійно, ні в кого ще дах не потекла. Просто сьогодні у нас на огляді конструктори і їх «антиподи». Точніше, деструктори!

ООП в PHP

Так, панове! Наш улюблений мова програмування також є об’єктно-орієнтованим. Хоча цей талант PHP затребуваний не так сильно, як інші його можливості. Чому так?

Об’єктно-орієнтоване програмування частіше застосовується при створенні десктопних і мобільних програм. При цьому використовується лише одна дисципліна. А в веб-розробці PHP застосовується ще з кількома технологіями. Виходить, що повторне використання програмних скриптів не сильно і «вітається».

Головною перевагою ООП є можливість спадкування. Тобто повторного використання коду. З допомогою одного класу можна створити безліч екземплярів. Крім цього класи можуть успадковувати властивості батьківських класів. Все це в сукупності значно розширює можливості багаторазового використання вже готових рішень або класів.

Але не будемо зариватися в глибини ООП. Сьогодні у нас на порядку денному PHP конструктори класу. Ними і займемося.

Конструюємо!

У ранніх версіях мови (до PHP 5.0) конструктори мали ті ж імена, що й їх класи. Зараз для оголошення конструктора використовується інший синтаксис. Наприклад:

Конструктор PHP и экземпляры созданного класса

Щоб оголосити конструктор, потрібно після ключового слова function поставити два нижніх підкреслення і додати construct:

Конструктори – це звичайні функції, тому вони підтримують ідентифікатори доступу. А також у них можна передавати аргументи. За допомогою конструкторів зручно зумовлювати поведінку створюваних екземплярів класу. Наприклад, у попередньому прикладі після створення екземпляра ми виводимо на екран певний текст.

Деструктурируем!

Класи в PHP мають конструктори і деструктори. Їх можна задавати явно або вони створюються автоматично (за умовчанням) при оголошенні класу. Конструктори викликаються при створенні об’єкта, деструктори – при його видаленні і служать для звільнення пам’яті від непотрібних ресурсів. Наступний приклад ілюструє все вище сказане:

«;
}
public function __destruct()
{
echo «Я лечу!»;
}
}
$draco=new Dragon();
// тут спрацює echo конструктора
unset($draco);
// тут спрацює echo деструктора
?>

Конструктор PHP и экземпляры созданного класса

Простіше кажучи, використовувати явне оголошення конструкторів можна, щоб реалізувати додаткові дії при створенні об’єкта. А деструктори – при його видаленні. Також варто пам’ятати, що на відміну від конструктора деструктор не приймає ніяких параметрів.

Не в тему!

Тут на днях мене запитали, який PHP конструктор сайтів краще використовувати. Як розробник я відповім, що ніякої! І тут полетіли в мене шишки :) . Але дозвольте! Перш ніж закидати мене «плодами» хвойних, дайте до кінця висловити свої думки.

Для нас (початківців) вхід на ці сервіси заборонений. Будь моя воля, то я звів би це правило в ранг закону. Ми повинні вчитися створювати свої рішення, аналізувати код. Спотикатися на чужих і власних рішеннях. Тільки так проходить становлення справжнього професіонала.

Я згоден, що конструктор створення PHP сайтів в деяких випадках є оптимальним варіантом для швидкого запуску свого ресурсу. Особливо, якщо у вас не вистачає коштів, щоб найняти грамотних фахівців і замовити у них сайт з унікальним дизайном.

У свій час писав огляди подібних рішень. І ось я, навчений досвідом програміст, заходжу на один з таких сервісів і просто не розумію, з чого мені почати, куди бігти і яку кнопку натискати.

Звичайно, можна заперечити, що на онлайн-конструкторах завжди повно документації для новачків, різних допомог і навіть навчальних роликів. Але повторюся ще раз: все це не для нас! Ми з вами програмісти, і нам нема чого робити на таких платформах. Краще час, які ви витратите на вивчення цих мінлива, приділити вивченню ще однієї теми на PHP!

Хоча деякі онлайн-конструктори все-таки можуть допомогти розробнику. Наприклад, конструктори регулярних виразів на PHP. Ось сюди ласкаво просимо, оскільки складання regular expressions можуть вивести з себе навіть самого «бувалого». Так що конструктори конструкторам ворожнечу :) .