Задать вопрос
@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/');


Имеет ли место быть такое именование?
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 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()
Причём, в них можно передавать параметром относительный путь внутри, чтобы получить полный. Здесь общий не префикс, а постфикс, т.к. результат больше похож на натуральный язык и, видимо, легче запоминается.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы