Всегда думал что api.php нужно для запроса от сторонних приложений, сайтов к твоему сайту для получения какой то информации, которую я хочу предоставить, без авторизации.Ну, неправильно думали, ничего страшного. Точнее, очень узко. Вот есть у вас сайт, а потом вы решили сделать к нему в пару мобильное приложение. Оно стороннее? Ничего сделать с отданным через WEB HTML оно не сможет*, потребуется API.
в тоже время используя api.php любой человек может запросить любой роут и получить кучу информацииЛюбой человек получит то, что вы ему отдадите. Никакого запрета (или сложностей) на внедрение авторизации в API нет.
Количество Middleware на web.php значительно больше, т.е. любой запрос проходит больше проверок перед тем как выдать результат.Middleware - это любые обработчики, а не только проверки. Т.е. "больше обработчиков не значит больше проверок". Любые обработчики вы можете навесить и на API**. И их даже не надо писать отдельно, в Laravel уже всё есть.
В итоге вопрос, с точки зрения безопасности, производительности есть преимущества api.php перед web.phpС точки зрения безопасности разницы нет. API может быть несколько производительнее за счёт того, что обрабатывает и отдаёт меньше "лишнего". Но по этим аспектам их вообще не надо сравнивать, это всё равно, что выбирать между экскаватором и самосвалом по степени лёгкости угона того или другого.
Всегда думал что api.php нужно для запроса от сторонних приложений, сайтов к твоему сайту для получения какой то информации, которую я хочу предоставить, без авторизации.
но зачем это делать когда уже всё это есть на web.php?
В итоге вопрос, с точки зрения безопасности, производительности есть преимущества api.php перед web.php
<?php
/**
* Plugin Name: Чумовой плагин
* Description: Это плагин, твердо и четко!
*/
if(!defined('ABSPATH')) {
exit;
}
class Best_Plugin {
protected $menu_slug = 'best-plugin';
public function __construct() {
// добавление страницы с пунктом меню
add_action('admin_menu', [$this, 'add_admin_page']);
// добавление ссылки на настройки плагина в списке плагинов
add_filter(
'plugin_action_links_' . plugin_basename(__FILE__),
[$this, 'add_settings_link']
);
}
// страница, любое содержимое страницы, обычно это винегрет из html/js/php
public function add_page() {}
// добавление страницы с пунктом меню
public function add_admin_page() {
add_options_page(
'Страница чумового плагина',
'Чумовой плагин',
'manage_options',
$this->menu_slug,
[$this, 'add_page'],
1
);
}
// добавление ссылки на настройки в списке плагинов
public function add_settings_link($links) {
$settings_link = "<a href=\"options-general.php?page={$this->menu_slug}\">Настройки чумового плагина</a>";
array_unshift($links, $settings_link);
return $links;
}
}
new Best_Plugin();
get_header();
if ( ! is_user_logged_in() ) {
//kажем эту страницу или например подключаем определенный контент
get_template_part("non-logged-in-page-content");
//или redirect на логин
wp_redirect( wp_login_url() );
exit;
}else{
//кажем другую страинцу
get_template_part("logged-in-page-content");
}
get_footer();
....
Здравствуйте, изучаю веб-разработку не так давно, но уже слышал про CMS
И насколько вообще важная штука CMS, и как частно нужно будет с ней работать?
var file=new Blob([JSON.stringify(obj, null, 2)], { type: "application/json"});
var url=URL.createObjectURL(file);
var a = document.getElementById("a"); // где то на странице невидимая ссылка
a.href = URL.createObjectURL(file);
a.download = 'myfilename.json';
создавать функции с такими же именами но уже в другой функции.
_e( 'Post', 'text-domain' );
) из-за чего вы переводите не те плагины/темы или текст вообще отсутсвует/находится в другом шаблоне для перевода (pot файле). Бывает, что тема содержит встроенные плагины у которых отдельные файлы для перевода;/wp-content/languages
, потом из папки с темой или плагином. А если установлен плагин Loco, то вообще в первую очередь переводы берутся из папки /wp-content/languages/loco
, поэтому наверное есть смысл удалять/отключать плагин Loco после того, как вы завершите перевод, а все свои наработки хранить в папке /wp-content/languages/plugins
или /wp-content/languages/themes
в зависимости от того, что вы переводите