Определите файл, включаемый в класс для всех используемых методов

Есть ли способ включить файл в начале класса для всех методов, чтобы использовать. Пример ниже представляет собой упрощенную версию того, что я пытаюсь достичь. В настоящее время я должен включить файл в каждый метод.

Пример логики (не работает)

    class Myclass
{
protected require_once 'folerd1/folder2/pear/HTTP/Request2.php'; // this does not work

public function aMethod()
{
$request = new HTTP_Request2('http://example1.com/', HTTP_Request2::METHOD_GET);
try {
$response = $request->send();
if (200 == $response->getStatus()) {
echo $response->getBody();
} else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
} catch (HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
}

public function aMethod1()
{
$request = new HTTP_Request2('http://example2.com/', HTTP_Request2::METHOD_GET);
try {
$response = $request->send();
if (200 == $response->getStatus()) {
echo $response->getBody();
} else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
} catch (HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
}

// more methods
}

0

Решение

2 решение

1) require_once взят вне класса

require_once 'folerd1/folder2/pear/HTTP/Request2.php';
class Myclass
{

2) Включить в конструкцию

public function __construct() {
require_once 'folerd1/folder2/pear/HTTP/Request2.php';
}

Но лучше первый вариант

0

Другие решения

Лучше всего смотреть на стандарт автозагрузки http://www.php-fig.org/psr/psr-0/

Вы пробовали это? Я не знаю, какой у вас файл Request2.php. Так что мой код — это всего лишь PoC!

require 'folerd1/folder2/pear/HTTP/Request2.php';

class Myclass
{
public function aMethod()
{
$request = new Request2('http://example1.com/', Request2::METHOD_GET);
try {
$response = $request->send();
if (200 == $response->getStatus()) {
echo $response->getBody();
} else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
} catch (Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
}

public function aMethod1()
{
$request = new Request2('http://example2.com/', Request2::METHOD_GET);
try {
$response = $request->send();
if (200 == $response->getStatus()) {
echo $response->getBody();
} else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
} catch (Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
}
}
0

Как я уже прокомментировал, просто требуется файл в конструкторе класса PHP:

class Myclass{
function Myclass(){
require_once('folerd1/folder2/pear/HTTP/Request2.php');
}

Я не проверял это, но МОЖЕТ быть возможно, что то, что вы просто делаете, включает в себя не только весь класс, но и весь сценарий. Пожалуйста, проверьте это, если это проблема для вас. Если нет, другие 2 решения могут закончить тем же.

ура

0