Правильный include для подключения классов от Slim

Вячеслав
Местный
Сообщения
229
Реакции
21
Обычно на сайтах используют подключение class.php так:
<?php include("class/function.php"); ?>

- Как видите "class" - это папка и мы видим полный путь до файла подключения, сколько бы их не было:
/class/run/nix/job/8599/function.php, ... Небезопасно, если файл с инклуйдом каким то образом вытащили.

Безопаснее использовать такой метод:
<?php require(__DIR__ .'/function.php'); ?> или <?php include(__DIR__ ."/function.php"); ?> Одинарные и двойные кавычки "-", '-' имеют значения в некоторых случаях, поэкспериментируйте! : )

Это отличный вариант спрятать класс в любом месте и в любой папке, также этот метод хорошь тем, если у вас очень много классов на сайте, этот метод без труда подключит все что есть, главное чтобы имена классов не совпадали иначе будет глобальная ошибка всего сайта !!!

Чем отличаются include, include_once, require и require_once не сложно загуглить и почитать более подробно. Надеюсь вам понравилось! : )
 
kolyaka105
Участник
Сообщения
6
Реакции
1
Безопаснее вообще так, что бы файлы если уже были загружены, не подгружались больше.
Код:
define('BASE_DIR', $_SERVER['DOCUMENT_ROOT']);
require_once(BASE_DIR.'/file.php');
Работать будет на любом php скрипте.
 
Вячеслав
Местный
Сообщения
229
Реакции
21
kolyaka105 написал(а):
Безопаснее вообще так, что бы файлы если уже были загружены, не подгружались больше.
Код:
define('BASE_DIR', $_SERVER['DOCUMENT_ROOT']);
require_once(BASE_DIR.'/file.php');
Работать будет на любом php скрипте.
этот вариант не работает что странно! Может сервер у меня другой) Мой вариант работает на 100%, много разных инклуйдов перепробовал
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Telegram
pligin
Вячеслав написал(а):
этот вариант не работает что странно! Может сервер у меня другой) Мой вариант работает на 100%, много разных инклуйдов перепробовал
он имеет ввиду, что нужно подключать самостоятельно каждый файл, а не автоматом все файлы из каталога
 
Сверху