Подскажите, пожалуйста, можно ли из класса как-то узнавать директорию файла, в которой создан объект класса? или это нужно только передавать.
Поясню. Мне внутри класса нужно сделать require_once - но объекты будут созданы в разных местах, и хотелось бы указывать директорию относительно их...
Сейчас я организовал это через метод setDir в который я передаю __DIR__ - можно ли это сделать иначе?
1. InviS - 13 Мая, 2011 - 11:51:30 - перейти к сообщению
2. Мелкий - 13 Мая, 2011 - 13:06:37 - перейти к сообщению
Лучше ознакомьтесь с такой удобной штукой как __autoload и адресовать классы по чёткой иерархии.
3. Stierus - 13 Мая, 2011 - 13:18:54 - перейти к сообщению
InviS, опиши задачу ... твое решение поставленной задачи (иклуд разных вариантов одноименных классов из разных директорий, инклуд еще и внутри классов, причем тоже зависящий от директорий) - явное костыляние, уже видно, что ты получишь немаленькую кучку проблем с этим.
4. InviS - 13 Мая, 2011 - 13:27:42 - перейти к сообщению
Задача:
У меня есть header и footer для страниц (хранятся в отдельном файле)
И есть класс, который формирует странички.
Формирование происходит через ob_start() и ob_get_clean() - после чего все что было "заинклужено" выводится в нужное место.
Сейчас индекс файл у меня выглядит так:
У меня есть header и footer для страниц (хранятся в отдельном файле)
И есть класс, который формирует странички.
Формирование происходит через ob_start() и ob_get_clean() - после чего все что было "заинклужено" выводится в нужное место.
Сейчас индекс файл у меня выглядит так:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?
- /** добавляем папки в include_path */
- require_once 'class.page.php';
- require_once 'class.controller.php';
- $page = new page(Page :: $XHTML);
- $controller = new controller();
- $page -> setDir(__DIR__);
- $page -> setHeader('views/_header.phtml') -> showHeader();
- $page -> setFooter('views/_footer.phtml') -> showFooter();
- $controller -> getView();
- require_once($controller -> view);
- } else {
- require_once "views/404.phtml";
- }
- ?>
Вот я хотел избавиться от этого ненужного передавания __DIR__.
В принципе, если я буду добавлять в include_path не просто каталоги, а каталоги с полным путем относительно __DIR__ то это, по-видимому, решит мою проблему и мне не нужно будет передавать даже директории.
И мне было интересно, можно ли в самом классе сделать процедуру, которая узнает директорию файла, в которой был создан объект этого класса.. Вот...