Size: a a a

2020 January 13

KN

Kirill Nesmeyanov in phpGeeksJunior
там подключается composer autoload и всё
источник

А

Алексей in phpGeeksJunior
Kirill Nesmeyanov
там подключается composer autoload и всё
ну, композер автолоад помогает мне мильён библиотек подключить, т.е. я должен где-то в Вендоре замутить конфиг.пхп?
источник

AM

Anton Mikhalev in phpGeeksJunior
Алексей
ну, композер автолоад помогает мне мильён библиотек подключить, т.е. я должен где-то в Вендоре замутить конфиг.пхп?
чел тебе нужна функция
getProjectDir которая возвращает корень проекта. относительно корня проекта путь до config.php вряд ли будет меняться, то есть getConfigPath() = getProjectDir() . '/config/config.php'
источник

AM

Anton Mikhalev in phpGeeksJunior
и из всех своих файлов вызывай getConfigPath()
источник

AM

Anton Mikhalev in phpGeeksJunior
и хоть сто раз их перекидывай как хочешь пути меняй
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
ну глобальные функции в пыхе всё же принято называть через андекрскор...
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
base_path() тогда уж
источник

А

Алексей in phpGeeksJunior
Anton Mikhalev
чел тебе нужна функция
getProjectDir которая возвращает корень проекта. относительно корня проекта путь до config.php вряд ли будет меняться, то есть getConfigPath() = getProjectDir() . '/config/config.php'
а как мне сделать getConfigPath() доступной из любой точки прожекта?
источник

AM

Anton Mikhalev in phpGeeksJunior
Kirill Nesmeyanov
ну глобальные функции в пыхе всё же принято называть через андекрскор...
а с чего ты взял что это не сервис будет?
источник

AM

Anton Mikhalev in phpGeeksJunior
Алексей
а как мне сделать getConfigPath() доступной из любой точки прожекта?
всё ясно
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
Алексей
а как мне сделать getConfigPath() доступной из любой точки прожекта?
а ты уже изучил приведённый мною выше список?
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
могу повторить)
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
Kirill Nesmeyanov
Хорошо, в этом случае:
1) Быстрый путь: Прочитать про spl_autoload_register
2) Более сложный путь: Прочитать про composer и PSR-4 (опционально PSR-0)
3) Правильный путь: Начать с первого, разобраться и перейти к п2 используя уже его
это ответ на твой вопрос
источник

AM

Anton Mikhalev in phpGeeksJunior
Алексей
а как мне сделать getConfigPath() доступной из любой точки прожекта?
да и чтобы ты понимал getProjectDir() должна возвращать не константу, а вычислять корень проекта по каким-то признакам, например по наличию composer.json в папке. проверяешь есть ли composer.json в текущей директории, если нет - переходишь на уровень выше и т.д
источник

А

Алексей in phpGeeksJunior
А ежели композер не установлен???
источник

AM

Anton Mikhalev in phpGeeksJunior
потому что сам проект тоже может кочевать из папки в папку, от машины к машине
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
Anton Mikhalev
да и чтобы ты понимал getProjectDir() должна возвращать не константу, а вычислять корень проекта по каким-то признакам, например по наличию composer.json в папке. проверяешь есть ли composer.json в текущей директории, если нет - переходишь на уровень выше и т.д
нафига?
источник

AM

Anton Mikhalev in phpGeeksJunior
а ежели композер не установлен то создай в корне проекта файл project_base_dir, на который будешь ориентироваться
источник

AM

Anton Mikhalev in phpGeeksJunior
Kirill Nesmeyanov
нафига?
Anton Mikhalev, [13.01.20 18:12]
потому что сам проект тоже может кочевать из папки в папку, от машины к машине
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
что мешает:
class Application
{
   public function __construct(string $root) { ... }
   public function getRootDirectory(): string { ... }
}
источник