Czytałem gdzieś, że czasami PHP po prostu nie jest wystarczająco szybkie i ten skompilowany kod musi czasem "robić ciężki lifting".Jak mogę używać kodu C++ do interakcji z PHP?
Co to jest api w C++, aby to zrobić?
Czytałem gdzieś, że czasami PHP po prostu nie jest wystarczająco szybkie i ten skompilowany kod musi czasem "robić ciężki lifting".Jak mogę używać kodu C++ do interakcji z PHP?
Co to jest api w C++, aby to zrobić?
Możesz dodać funkcje/klasy do PHP, zaprogramowane w C (i możesz zawinąć klasę C++ z C, jeśli dobrze pamiętam z artykułu, który czytałem jakiś czas temu), który może pozwolić ci na robienie pewnych rzeczy szybciej - jeśli dobrze zaprogramowany: nie ma potrzeby interpretowania kodu PHP; tylko wykonanie kodu maszynowego, który jest ogólnie o wiele szybszy.
Aby to zrobić, musisz rozwinąć rozszerzenie PHP.
Nie ma zbyt wiele Zasoby dostępne w Internecie o tym, ale to jedno może pomóc, aby rozpocząć:
, a konkretnie o C++ części, ten może pomóc też:
Jeśli jesteś naprawdę zainteresowany przez podmiot, a gotowy wydać trochę pieniędzy na nim, można również kupić książkę Extending and Embedding PHP(some pages are available as preview on Google Books) również); Widziałem kilka razy, że był książka czytać gdy zainteresowany na ten temat (W rzeczywistości, kupiłem go jakiś czas temu, a to ciekawa odczytu)
BTW, autor tej książki jest również autorem pierwszych czterech artykułów I związana ;-)
Nadzieja to pomaga ...
zabawy!
Można rzeczywiście execute skompilowane aplikacje bez jakiegokolwiek API:
$output = exec('/path/to/yourapp');
Poza tym, zawsze można napisać rozszerzenie PHP. Tutaj jest dobry przewodnik na temat: http://devzone.zend.com/article/1021
+1 dla rozszerzenia PHP, ale -1 dla exec() – LiraNuna
@Lira: Uh, dlaczego? – brianreavis
exec() to duża luka w zabezpieczeniach, jeśli atakujący przekaże szkodliwą linię komend do funkcji, jeśli escapeshellarg() lub escapeshellcmd() nie są używane. – mosid
Cóż, nie zdefiniowałeś, co chcesz zrobić, ale jeśli potrzebujesz interfejsu C++, spójrz na katalog ext w kodzie źródłowym, aby zrozumieć, jak napisać rozszerzenie PHP, które możesz następnie załadować i użyć ze swoich skryptów PHP.
Kilka linków, które mogą pomóc:
http://www.devarticles.com/c/a/Cplusplus/Developing-Custom-PHP-Extensions-Part-1/ http://devzone.zend.com/article/1021
swig, the Simplified Wrapper and Interface Generator może pomóc owijania (istniejących) C++ do modułu PHP.
SWIG to narzędzie programistyczne łączące programy napisane w języku C i C++ z różnymi językami programowania wysokiego poziomu. SWIG jest używany w różnych językach, w tym w popularnych językach skryptowych, takich jak Perl, PHP, Python, Tcl i Ruby.
Właśnie próbowałeś użyć SWIG do napisania bardzo prostego opakowania PHP. Pracował bezbłędnie bardzo łatwo. –
próbowałem SWIG? wydaje się dobrym rozwiązaniem twojego problemu !!
click here odwiedzić stronę haust (dokumentacja nie może być o wiele przyjaźni, choć!)
Przed patrząc mieszania C++ PHP, powiedziałbym profil i upewnij się, znajdź sekcję PHP, który jest powolny, a sprawdź, czy możesz najpierw poprawić to w PHP. Większość interfejsów, które pozwalają przejść z języka X na C++, będzie wyglądać dziwnie podczas pisania rozszerzenia w C++. – Calyth