У меня есть несколько больших файлов констант, использующих функцию PHP define(), которая хорошо работала в Laravel 4, но теперь я обновляю приложение до Laravel 5 и не знаю, как лучше перенести эти файлы.
Причина, по которой у меня есть более одного файла для констант, заключается в том, что они основаны на прошлых, настоящих и будущих годах (и это большие файлы со многими константами). Вот пример из одного из файлов констант:
<?php
//Check to see if the user is logged in.
// If no user, we can't know what catalog we should use
if (Auth::check()) {
//The most recent catalog year will serve as the default for anyone
//who signs up for a catalog year that is newer than the most recent
//catalog year.
if (Auth::user()->strg_4 == "2015 - 2016" ||
intval(substr(Auth::user()->strg_4, 0, 4)) > date("Y")) {
//Constants for Create course/Edit course pages
define('MY_CONSTANT', 'This is an example of a constant');
}
}
Я попытался сделать следующее: Добавление следующего блока кода в мой файл composer.json:
"autoload": {
"classmap": [
"database",
"app/Http/Controllers",
"app/Models",
"app/myclasses"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/constants2013andearlier.php",
"app/constants20142015.php",
"app/constants20152016.php"
]
},
Однако это не сработало, возможно, потому что в моих файлах констант есть условные операторы PHP.
Я также попытался поместить это в свои базовые блейд-файлы для всех своих представлений:
@include('constants.constants2013andearlier')
@include('constants.constants20142015')
@include('constants.constants20152016')
Однако это тоже не сработало, так как файлы, похоже, не читаются (я получил сообщение об ошибке «ErrorException в строке Course.php 752: использование неопределенной константы MY_CONSTANT — предполагается «MY_CONSTANT»», где Course.php — один из моих Модели.
В моей старой версии проекта Laravel 4 я определял эти константы в файле global.php с помощью следующего кода:
require app_path().'/constants2013andearlier.php';
require app_path().'/constants20142015.php';
require app_path().'/constants20152016.php';
Какие-либо предложения? Спасибо.