Your SlideShare is downloading. ×
0
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++

510

Published on

¿Que es PHP? “PHP is a serverside scripting language designed for web development but also used as a general-purpose programming language”. -wikipedia …

¿Que es PHP? “PHP is a serverside scripting language designed for web development but also used as a general-purpose programming language”. -wikipedia
9. ¿Que es una extensión? “An extension in PHP is in fact a module providing some functionality to the PHP Engine.” - Shahar Evron

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
510
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. [PHP] Desarrollo de extensiones en c/c++ CODEMOTION Madrid 2013
  • 2. Un poquito de SPAM
  • 3. Un poquito de SPAM Daniel González @desarrolla2
  • 4. Un poquito de SPAM @phpmad
  • 5. Objetivo
  • 6. Objetivo
  • 7. Introducción teórica Desarrollo de extensiones en C/C++
  • 8. ¿Que es PHP? “PHP is a serverside scripting language designed for web development but also used as a general-purpose programming language”. -wikipedia
  • 9. ¿Que es una extensión? “An extension in PHP is in fact a module providing some functionality to the PHP Engine.” - Shahar Evron
  • 10. ¿Para que extender PHP?
  • 11. ¿Para que extender PHP?
  • 12. ¿Para que extender PHP?
  • 13. ¿Por que no hacerlo?
  • 14. ¿Por que no hacerlo? “spaPHPetti code”
  • 15. ¿Por que no hacerlo?
  • 16. ¿Por que no hacerlo?
  • 17. ¿Por que no hacerlo?
  • 18. ¿Por que no hacerlo?
  • 19. strtoupper PHP_FUNCTION(strtoupper) { char *arg; int arglen; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arglen) == FAILURE) { return; } arg = estrndup(arg, arglen); php_strtoupper(arg, arglen); RETURN_STRINGL(arg, arglen, 0); }
  • 20. strtoupper PHPAPI char *php_strtoupper(char *s, size_t len) { unsigned char *c, *e; c = (unsigned char *)s; e = (unsigned char *)c+len; while (c < e) { *c = toupper(*c); c++; } return s; }
  • 21. strtoupper <?php echo "Testing strtoupper: "; $test = "abCdEfg"; $upper = strtoupper($test); if ($upper == "ABCDEFG") { echo("passedn"); } else { echo("failed!n"); } ?>
  • 22. strtoupper --TEST-Test strtoupper on non-ASCII characters --SKIPIF-<?php if (!setlocale(LC_CTYPE, "de_DE", "de", "german", "ge", "de_DE.ISO8859-1", "ISO8859-1")) { die("skip locale needed for this test is not supported on this platform"); } ?> --FILE-<?php $chars = "�"; // Not sure which is most portable. BSD's answer to this one. A small array based on PHP_OS should // cover a majority of systems and makes the problem of locales transparent for the end user. setlocale(LC_CTYPE, "de_DE", "de", "german", "ge", "de_DE.ISO8859-1", "ISO8859-1"); echo strtoupper($chars)."n"; ?> --EXPECT--
  • 23. ¿Por que no hacerlo? github.com/php/php-src repositorio git desde 1999 140 committers 50,000 commits ~ 10 committers / año
  • 24. ¿Por que no hacerlo? github.com/symfony/symfony repositorio git desde 2010 770 committers 15,000 commits ~ 250 committers / año
  • 25. ¿Por que no hacerlo?
  • 26. ¿Que necesito? código fuente de php entorno de compilación conocimientos de c/c++ conocimientos de php ( bajo el capó )
  • 27. Bajo el capó Application ( apache, cli, nginx, php-fpm ) SAPI PHP API PHP Core Extensions Zend API Zend Extension API Zend Engine PHP Architecture
  • 28. Bajo el capó SAPI Startup PHP Startup Engine Init Module Initialization and configuration MINIT Signals Sandboxing Fork Child Exit Fork Child Exit RINIT Signals RSHUTD OWN
  • 29. Bajo el capó PHP Code LEXER Expressions PARSER / COMPILER OP Code
  • 30. Ejemplos prácticos Desarrollo de extensiones en C/C++
  • 31. RelaxingCup(); Desarrollo de extensiones en C/C++
  • 32. PrimeNumbers ->factorize(1000,10000); Desarrollo de extensiones en C/C++
  • 33. afile_put_contents(); Desarrollo de extensiones en C/C++
  • 34. afile_put_contents Module Initialization and configuration Child Exit MINIT Signals fopen RINIT Signals RSHUTD OWN fwrite fclose
  • 35. Para terminar ... Desarrollo de extensiones en C/C++
  • 36. Conclusiones
  • 37. Referencias https://wiki.php.net/internals/references
  • 38. ¿Preguntas? Desarrollo de extensiones en C/C++
  • 39. ¡Gracias! Desarrollo de extensiones en C/C++

×