@Zezst
программист PHP

Чем руководствоваться при именовании констант?

Хотелось бы узнать у сообщества об отношении к define.
В частности, если константа содержит путь, обязательно ли ее именовать префиксом PATH?
Например, у приложения есть порядка 5 констант, содержащих конкретные пути:

define('ROOT', __DIR__ . '/');
define('WWW', ROOT . 'public/');
define('KERNEL', ROOT . 'kernel/');
define('LIBRARY', ROOT . 'library/');
define('TMP', ROOT. 'tmp/');
define('LOGS', ROOT. 'logs/');


Имеет ли место быть такое именование?
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
slashinin
@slashinin
Задачи для PHP https://justcoding.ru
Попробуйте использовать класс, выглядит очень не плохо:

<?php 
class Path {
	const ROOT = __DIR__ . '/';
	
	const WWW = self::ROOT . 'public/';
	
	const KERNEL = self::ROOT . 'kernel/';
	
	const LIBRARY = self::ROOT . 'library/';
	
	const TMP = self::ROOT . 'tmp/';
	
	const LOGS = self::ROOT . 'logs/';	
}

// Применение
echo Path::ROOT;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега PHP
♬♬
Если пишете не прилжоение, а модуль, который станут использовать другие разработчики, рекомендуется использовать общий префикс для констант именно вашего модуля:
HABR_ROOT
HABR_WWW
HABR_KERNEL


Как вариант с путями, например, в Laravel они получаются вызовом вспомогательных функций:
app_path()
base_path()
config_path()
database_path()
public_path()
storage_path()
Причём, в них можно передавать параметром относительный путь внутри, чтобы получить полный. Здесь общий не префикс, а постфикс, т.к. результат больше похож на натуральный язык и, видимо, легче запоминается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 40 000 до 60 000 ₽
LAPTOP.RU Кострома
от 25 000 до 65 000 ₽
LAPTOP.RU Москва
от 130 000 до 170 000 ₽