• Время чтения ~2 мин
  • 15.12.2023

Пакет 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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

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...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297