Laravel: вызов методов класса из php скрипта в публичном каталоге

У меня есть view.blade.php, который вызывает wrapper.php, который возвращает некоторое значение для iframe в представлении.

Я могу вернуть это значение, но я должен сделать некоторую работу с другими методами в моих классах Laravel.

Можно установить классы внутри php-обертки и вызвать методы или вызвать методы статических классов?

Структура проекта:

- project
-- app
--- Http
---- Classes
----- RepositoryUtil.php
...
-- public
--- Wrapper.php
...
-- resources
--- views
---- partials
----- view.blade.php

Код внутри view.blade.php:

<iframe id="reader" src="/libs/pdfjs/web/viewer.html?file=http://project.dev/Wrapper.php?id={{$encrypted}}">
</iframe>

Код внутри Wrapper.php:

<?php
// tried: use App\Http\Classes\RepositoryUtil
// tried: \App\Http\Classes\RepositoryUtil::getValue();
// tried: {{RepositoryUtil::getValue()}}
$myValue = RepositoryUtil::getValue(); #not work

var_dump($myValue);
?>

Код внутри RepositoryUtil.php

<?php

class RepositoryUtil{
public static function getValue(){
dd("getValue!");
return "value";
}
}

?>

Ошибка:

( ! ) Fatal error: Class 'RepositoryUtil' not found in /home/vagrant/Code/project/public/Wrapper.php on line 14

РЕДАКТИРОВАТЬ:
Я могу вызвать добавление метода статического класса include_once("../App/Http/Classes/RepositoryUtil.php"); на вершине Wrapper.php но когда я называю «методы Laravel», как $decrypted = Crypt::decrypt($encrypted); это возвращает ошибку:

( ! ) Fatal error: Class 'Crypt' not found in /home/vagrant/Code/project/App/Http/Classes/RepositoryUtil.php on line 13

ошибка

Спасибо

1

Решение

После многих и многих попыток и исследований, я понял это!

Разместите мой код Wrapper.php:

<?php

require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);

$value = RepositoryUtil::getValue();

// Your other staff here...

?>

Проблема была в том, что после вызова внешнего php, Laravel не загрузился!

Я пытался загрузиться с require __DIR__.'/../bootstrap/autoload.php';, $app = require_once __DIR__.'/../bootstrap/app.php'; и звонит $app->boot()и это сработало.

Но были и другие проблемы: фасады не были загружены, но я могу видеть в массиве «псевдоним», когда журнал $app переменная.
Вы должны загрузить ядро, чтобы вернуть Фасады обратно.

С помощью Laravel 5.1,

0

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

Других решений пока нет …

По вопросам рекламы [email protected]