Как мне ссылаться на класс в PHP? - PullRequest
2 голосов
/ 31 июля 2011

Я пытаюсь сделать PHP-разработку, но не могу понять, как ссылаться на мой класс в другом PHP-файле.Я использую CI в качестве своей инфраструктуры MVC, и в разделе «Приложение» я создал папку с именем «домен», в которую я помещаю объекты, специфичные для моего домена.

У меня есть класс с именем «пользователь», определенный в файленазывается «User.php».Итак, 'domain / User.php'

Я пытаюсь сослаться на этот класс в другом файле PHP, например так:

<?php

require('domain/User.php');

..

?>

Это приводит к ошибке:

Не удалось открыть обязательный файл 'domain / User.php' (include_path = '.: / Usr / lib / php')

Итак, очевидно, я не знаю, как это делается вPHP.Так может кто-нибудь мне помочь?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 31 июля 2011

Вы должны убедиться, что вы ссылаетесь на правильный путь. Если вы создаете новый контроллер CI (то есть контроллер, который расширяет ядро ​​CI_Controller), вы можете легко решить эту проблему с помощью:

include (APPPATH . 'domain/User.php');

В противном случае вы можете найти абсолютный путь к текущему файлу, используя:

$current_path = dirname(__FILE__);

Позволяет вам ссылаться на любой внешний файл, который вы хотите, относительно текущего файла, который вы используете:

include ($current_path . '../domain/User.php');

После этого вы можете без проблем ссылаться на все ваши внешние контроллеры и методы. Если вы хотите запустить function_a () во внешнем файле, вам нужно использовать:

$this->user = new User();
$this->user->function_a();

Вы можете поместить эти загрузки в функцию __construct, чтобы избежать повторения в вашем коде.

0 голосов
/ 31 июля 2011

Скорее всего, файл не существует (в ожидаемом месте).

Сначала вы должны выяснить, где находится текущий файл. Для этого используйте echo __FILE__; перед require. Затем убедитесь, что domain/User.php действительно доступно в ожидаемом месте.

Если, однако, ваши включения находятся где-то совершенно по-другому, вы должны настроить правильный include_path для PHP. Вы можете сделать это, отрегулировав настройку в файле php.ini.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...