Rust in PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java developer met testervaring

Java developer met testervaring Functieomschrijving "De drempel tussen de burger en de Belastingdienst zo laag mogelijk houden: dat is de belangrijke taak van ons team. Dit doen we door het burgerportaal Mijn Belastingdienst continu te verbeteren." René, Java-specialist bij de Belastingdienst. De keten Interactie is een samenwerkingsverband van alle dienstonderdelen binnen de Belastingdienst. Samen zorgen we dat het contact met burgers en bedrijven goed kan plaatsvinden. Onze belangrijkste opgave? Zoveel mogelijk digitaliseren. Dat doen we binnen het onderdeel Informatievoorzieningen (IV), de ICT-organisatie van de Belastingdienst. Denk bij de producten die IV-Interactie ontwikkelt en onderhoudt aan portalen, formulieren en authenticatie- en

Bekijk vacature »

Full Stack Developer Industriële Automatiseri

Raster wordt continu betrokken bij complexe en baanbrekende projecten in industriële automatisering. Ons team is gespecialiseerd in productie automatisering en proces automatisering projecten waarin procesveiligheid een belangrijk aspect is. Ons compact en groeiend OX (Operational Excellence) team ontwikkelt, configureert en levert support op zelfontwikkelde applicaties waarmee onze klanten hun productieprocessen slimmer, sneller, goedkoper en veiliger maken. Operational Excellence wordt zichtbaar gemaakt in resultaten. Bij bedrijven met dezelfde strategie, zal een operationeel excellent bedrijf een lager operationeel risico, lagere operationele kosten hebben en relatief meer winst maken. Het Raster OX team laat haar klanten de resultaten behalen door hun eigen procesdata

Bekijk vacature »

Ad Fundum

Ad Fundum

03/08/2021 08:12:44
Quote Anchor link
Ik zit al een tijdje met het probleem dat ik een programma heb geschreven in PHP, dat ik alleen als SaaS kan aanbieden. Want klanten zijn in principe niet te vertrouwen wanneer ik het programma zou overdragen voor On Premise hosting.
Gezien dat PHP code niet te compileren is (ja, versie 5 met Zend Guard, maar daar heb ik weinig aan) was mijn eerste idee om het programma dan maar zelf om te schrijven naar C. Dat zou moeten kunnen omdat PHP zelf in C geschreven is en extensies vaak wrappers zijn van C libraries. Nadat ik mijzelf opnieuw verdiept heb in C (ik heb daar eerder al mee gewerkt), ben ik afgelopen week van spoor gewisseld.

Ik heb het handboek van Rust gelezen. Ik had al eerder naar Rust gekeken maar vond toen het gebrek aan kwalitatieve crates een issue. Maar als ik dat nu afzet tegen alle voordelen ten opzichte van C, wint Rust. En het smaakt naar meer. Maar de applicatie is vooralsnog in PHP. Voor een geleidelijke transitie zin ik op deze vraag:
Welke manieren zijn te bedenken om Rust en PHP te laten samenwerken?

Een optie die ik gevonden heb is om met Rust een library te maken die met FFI te gebruiken is:
https://platform.sh/blog/2020/php-fun-with-ffi-getting-rust-ic/
De conclusie van het artikel is dat het weinig triviaal is en dat het weinig voordeel zou bieden.

Een ander idee is om naar wasm te compileren en de client code te laten samenwerken met PHP. Dat is leuk voor later, maar in de kern gaat het om de code aan de achterkant, die op de server draait, waar de relevante logica zit.

Misschien zijn er nog meer mogelijkheden?
Gewijzigd op 03/08/2021 08:14:23 door Ad Fundum
 
PHP hulp

PHP hulp

19/10/2021 14:42:47
 
Ward van der Put
Moderator

Ward van der Put

03/08/2021 11:50:51
Quote Anchor link
Er zijn inderdaad meer alternatieven, dichter bij huis:

https://pecl.php.net/package/bcompiler
 
Ad Fundum

Ad Fundum

03/08/2021 14:17:32
Quote Anchor link
Bedankt Ward voor het meedenken.
Toch denk ik niet dat het een serieus alternatief is, omdat de laatste versie 10 jaar oud is en alleen PHP 5 ondersteunt net als Zend Guard. Ik heb eerder op dit forum andere mogelijkheden onderzocht voor PHP en kwam uit op een tools als ionCube. Maar ik ben niet overdreven blij met de richting waarin PHP drijft met versie 8. Omdat ik al lang (20 jaar) met PHP werk sta ik open voor een nieuwe taal als Rust.

Hoewel het gras bij een ander altijd groener is, en aangezien Rust alle voordelen van C heeft en veiliger is, en compileert naar WebAssembly, is het toekomstbestendiger en kan ik op termijn met 1 taal zowel PHP als JavaScript vervangen. (Ik heb ook nooit echt warme gevoelens gehad voor JavaScript)

Vanuit Rust heb ik meerdere manieren gevonden om te integreren met PHP, zoals php-rs om een eigen extensie te maken. Of via fastcgi of met een eigen webserver als hyper. Non-blocking I/O is ook geen probleem met tokio. (PHP heeft daarvoor amphp.)

Ik geloof dat ik hiermee mijn eigen vraag heb beantwoord... maar als iemand nog iets kan toevoegen: graag!
Gewijzigd op 03/08/2021 14:19:00 door Ad Fundum
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.