Задать вопрос

Как задать абсолютный путь для всех файлов?

Доброго времени суток.
Проблема в следующем:
сайт разбит на части header.php, main.php, footer.php.
В файле index.php собираю через include, но из-за хостера, приходится прописывать:
<?php include ('/home/q/rq42252324/site_name/public_html/имя файла.php'); ?>
Что не очень удобно.

Подскажите, можно ли как нибудь единоразово прописать этот путь, например, в config файле а во всех остальных случаях, использовать дефолтовский путь:
<?php include ('/folder/file.php'); ?>

Спасибо заранее!
  • Вопрос задан
  • 3143 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
php.net/manual/ru/language.constants.predefined.php

// index.php
require __DIR__ . '/init.php';

// init.php
require __DIR__ . '/db/helper.php';
require __DIR__ . '/other/helper.php';


Либо:
// index.php
define('APP_ROOT', __DIR__ . '/app');

require APP_ROOT . '/db.php';.

// app/db.php
require APP_ROOT . '/some/helper.php';


А еще лучше, откажитесь вообще от require-ов в пользу авотзагрузки классов или сделайте какой-то менеджер зависомостей простенький. Тогда вся логика по подключению файлов будет в определенном месте.
Ответ написан
@vdem
Допустим, это index.php:
include('header.php');
include('main.php');
include('footer.php');

Должно работать.
P.S. Очевидно, header.php, main.php и footer.php должны быть в той же папке, что и index.php
Ответ написан
akarin
@akarin
В php.ini есть 2 строчки: auto_prepend_file и auto_append_file.
php.net/manual/ru/ini.core.php#ini.auto-prepend-file
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kompi
@kompi
nullstack devoops
В чем беда? Самый простой путь - через константу:
В index.php
ROOT_PATH = '/home/q/rq42252324/site_name/public_html';

Для любого файла в корне
include(ROOT_PATH . /file.php);
Ответ написан
Ваш ответ на вопрос

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

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