Я был довольно долгое время разработчиком PHP, и я начинаю сталкиваться с некоторыми ограничениями в языке. Итак, с учетом сказанного, я решил, что следующим шагом в моем цикле разработки будет переход на C++ и создание некоторых расширений!Почему разработка расширения php отличается от разработки C++?
Поскольку я прошел через некоторые стандартные «Hello World», такие как учебники, все, по-видимому, имеет смысл по большей части. Я построил довольно приличное приложение tic-tac-toe, поэтому я решил, что пришло время начать погружение в PECL и посмотреть, как все работает. То, что я обнаружил, как бы то ни было.
Может кто-нибудь, пожалуйста, объясните как цель и обоснование того, почему что-то вроде этого:
PHP_FUNCTION(helloWorld)
{
RETURN_STRING("Hello World");
}
не больше вдоль линий этого:
string helloWorld()
{
return "Hello World"
}
PHP_REGISTER_METHOD("helloWorld");
Я не притворяюсь, что я знаю больше, чем люди, которые создали язык, и я не пытаюсь волноваться. Кажется (по крайней мере, с точки зрения начинающих), что создание PHP-расширения не похоже на создание программы на C++. Это совсем другой язык, кроме некоторых основных правил синтаксиса.
Любая помощь будет оценена по достоинству. Просто начинающий пытается расти :)
Угадайте, PHP_FUNCTION и RETURN_STRING являются макросами, которые делают «под капотом». – Konrad
php обертывает каждый бит данных во всей стопке метаданных. его собственные функции, такие как register_string(), обрабатывают все это для вас. –
Я не хочу звучать снисходительно, но сколько у вас опыта написания реальных программ на C++ или для работы с реальными программами на C++ с большой существующей кодовой базой? – NullUserException