Pakiet PHP2JS dla Laravela to zdecydowany sposób na standaryzację procesu udostępniania danych między PHP i JavaScript. Istnieje wiele podejść do udostępniania danych między frontendem a backendem, więc ten pakiet może nie być dla wszystkich, ale może zaoferować proste rozwiązanie do udostępniania danych za pomocą JavaScript w spójny sposób.
Oto przykład z dokumentacji, który ilustruje, w jaki sposób ten pakiet udostępnia dane z kontrolera z widokiem, który jest dostępny dla języka JavaScript:Jest to udostępniane za pośrednictwem obiektu, który zawiera dane z widokuPHP2JS
:Można również zdefiniować wartości, które powinny być współużytkowane z widokiem oddzielnie od wartości przekazywanych do widoku bloku przy użyciu toStrictJS()
metody:
class YourController extends Controller
{
public function index()
{
return view('welcome')->with([
'moonLandingDate' => '1969-07-20'
])->toJS();
}
}
let moonLandingDate = PHP2JS.data.moonLandingDate;
// '1969-07-20'
$astronauts = [
'Neil Armstrong',
'Buzz Aldrin',
'Michael Collins'
];
return view('welcome')->with([
'astronauts' => $astronauts
])->toStrictJS([
'spacecraft' => "Lunar Module Eagle",
'event' => "Apollo 11 Moon Landing",
]);
Na koniec możesz również pracować z obiektem danych udostępnionym JavaScript za pośrednictwem funkcji pakietu na obiekcie:Ten pakiet oferuje również narzędzie o nazwie QuickRequest, aby uprościć wysyłanie żądań API z JavaScript do zaplecza 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);
}
});
Możesz dowiedzieć się więcej o tym pakiecie, uzyskać pełne instrukcje instalacji i zobaczyć przykłady w oficjalnej dokumentacji; kod źródłowy projektu jest również dostępny na PHP2JS
GitHub pod adresem rmunate/PHP2JS.