• Czas czytania ~2 min
  • 15.12.2023

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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297