Я просматривал этот вопрос PHP - определение классов внутри функции (Как у него так много голосов, вне меня)
Короче говоря, он не отвечает на мой вопрос.
Говоря конкретно, код с созданием плагинов WordPress
Шорткод - это то, что вы можете использовать в любом плагине, когда-то созданном, например
//Create callback for shortcode
function DisplayNumberFive(){
echo "5";
}
//create shortcode as [DNF]
add_shortcode('DNF','DisplayNumberFive');
Теперь везде, где я хотел отобразить число 5
Я могу просто сделать
do_shortcode("[DNF]");
, и результат будет 5
Теперь, с учетом этой функциональности, имеет ли смысл иметь класс, например
//Create callback for shortcode
function CreateFooClass(){
class Foo{
function Bar(){
return "FooBar";
}
}
}
//Create shortcode as [include_Foo]
add_shortcode('include_foo','CreateFooClass');
//Use case
do_shortcode("[include_foo]");
$foo = new Foo();
echo $foo->Bar();
//Ouput
"FooBar"
У меня вопрос, если я делаю это неправильно или это приводит к ошибкам, которых я не вижу.Будет ли Bar()
даже доступен, поскольку он находится внутри функции?
Цель состоит в том, чтобы исключить необходимость дублирования файлов в плагинах на WordPress, так что если вы создаете класс, например, для регистрации событий на одном плагине, но вытакже хотел бы регистрировать события для другого плагина, файлы в одном плагине не доступны друг другу, поэтому необходимо создать дубликат файла в другом плагине, чтобы исключить возможность создания шорткода, чтобы класс был доступен везде во всех плагинах, которыевот как я пришел к этому решению, я просто обеспокоен тем, что, возможно, это неправильно, учитывая, что я не смог найти никаких результатов Google, детализирующих кого-либо, делающего это, и это заставило меня задуматься, если никто другой не сделал это, должна быть причина, почему.
Так почему никто этого не делает?