Пакет PHP2JS для Laravel — это способ стандартизировать процесс обмена данными между PHP и JavaScript. Существует множество подходов к обмену данными между фронтендом и бэкендом, поэтому этот пакет может подойти не всем, но он может предложить вам простое решение для согласованного обмена данными с JavaScript.
Вот пример из документации, который иллюстрирует, как этот пакет разделяет данные из контроллера с представлением, доступным для JavaScript:Это становится доступным через PHP2JS
объект, включающий данные из представления:Вы также можете определить значения, которые должны быть общими с представлением, отдельно от значений, передаваемых в представление Blade, с помощью метода:
class YourController extends Controller
{
public function index()
{
return view('welcome')->with([
'moonLandingDate' => '1969-07-20'
])->toJS();
}
}
let moonLandingDate = PHP2JS.data.moonLandingDate;
// '1969-07-20'
toStrictJS()
$astronauts = [
'Neil Armstrong',
'Buzz Aldrin',
'Michael Collins'
];
return view('welcome')->with([
'astronauts' => $astronauts
])->toStrictJS([
'spacecraft' => "Lunar Module Eagle",
'event' => "Apollo 11 Moon Landing",
]);
Наконец, вы также можете работать с объектом данных, доступным для JavaScript, с помощью функций пакета для объекта:Этот пакет также предлагает инструмент под названием QuickRequest для PHP2JS
упрощения выполнения запросов API из JavaScript к вашему бэкенду Laravel:
// Assign a copy of the object to a new variable at runtime.
// Remember to replace PHP2JS with the Alias you have used.
const __PHP = PHP2JS.assign();
// Extract data or validate if it exists in
// the object delivered by PHP:
const post = PHP2JS.only('post');
const hasPost = PHP2JS.has('post');
// Get a value
PHP2JS.get("date");
/**
* Considering that this value is retrieved from
* somewhere in a JS variable.
*/
const idRecord = 10;
/**
* Use the route structure created in web.php.
*/
QuickRequest().get({
url: '/record/' + idRecord,
success: function (res) {
console.log("Successful Process, Data: ", res.data);
},
error: function (err) {
console.error("Error: " + err.data.message);
}
});
Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть примеры в официальной документации; исходный код проекта также доступен на GitHub по адресу rmunate/PHP2JS.