Система плагинов для своего сайта на PHP

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
Slash
Администратор
Сообщения: 2124
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 75 раз

Система плагинов для своего сайта на PHP

Сообщение Slash » Пн дек 21, 2015 1:57 pm

Здравствуйте.
Недавно на одном форуме помогал реализовать систему плагинов для одного сайта, и теперь хочу тут поделиться решением, которое предложил я. Система проста до безобразия, но прежде чем разбирать исходник, давайте разберемся, что такое плагин и для чего он нужен.
Плагины — это способ расширить возможности функционала своего сайта, без внесения правок в исходный код движка. Установка плагина занимает очень мало времени, порой для установки требуется только залить один файл в папку плагинов.

Теперь переходим к созданию самой системы плагинов. Создаем папку, куда будем заливать все свои плагины, например plugins. Наша задача получить содержимое этой папки, для этого будем использовать функцию scandir(). Затем в цикле foreach() будем проверять соответствует ли файл нашим требованиям, и если да, то подключаем файл при помощи функции include().
Код системы плагинов:

Код: Выделить всё

$dir = 'plugins/';          # Создаем переменную с именем каталога, где будут находится все плагины
$files = scandir($dir);     # Получаем список всех файлов в папке plugins

foreach($files as $file)    # Прогоняем список полученных файлов через цикл
{
    if (preg_match('#\.php#', $file))   # Проверяем, имеет ли файл расширение .php
	{
	    include($dir . $file);          # Если файл с расширением .php, то подключаем его
	}
}
Теперь для примера создадим один плагин, который будет выводить текущею дату и время на экран. Назовем плагин (файл): date.php, с таким содержимым:

Код: Выделить всё

<?php
echo date('F j, Y, g:i a');
Сохраняем файл и заливаем его в папку plugins, и проверяем работу системы, на экране должно появится текущая дата и время, например:
December 21, 2015, 10:57 am
Если так, все все сделано правильно.

Надеюсь информация была полезной.
Спасибо за внимание.

Реклама

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость