Diferencia entre revisiones de «Usuario:ManuelRomero/php»
De WikiEducator
(32 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{MRM_Web|Title=Explorando la red| | {{MRM_Web|Title=Explorando la red| | ||
+ | *https://phppot.com/ Artículos interesantes sobre php | ||
*https://www.laraveltip.com/explotando-las-mejoras-de-php-en-cada-version/ | *https://www.laraveltip.com/explotando-las-mejoras-de-php-en-cada-version/ | ||
− | |||
*https://www.php-fig.org/ | *https://www.php-fig.org/ | ||
*jira for php https://github.com/lesstif/php-jira-rest-client | *jira for php https://github.com/lesstif/php-jira-rest-client | ||
+ | *Nuevas versión https://www.php.net/releases/ | ||
+ | *Apuntes (muy bueno) https://aitor-medrano.github.io/dwes2122/ | ||
+ | *Proxy pattenr en php https://github.com/Ocramius/proxy-pattern-in-php | ||
+ | *Código limpio en php https://soka.gitlab.io/blog/post/2022-06-16-tips-clean-code-php/ | ||
+ | }} | ||
+ | <br /> | ||
+ | ===Controlando la salida que genera php=== | ||
+ | ;ob_start | ||
+ | https://www.php.net/manual/es/ref.outcontrol.php | ||
+ | https://desarrolloweb.com/articulos/control-de-salida-php.html | ||
+ | |||
+ | ===Seguridad en la web=== | ||
+ | |||
+ | https://owasp.org/ | ||
+ | ;Web donde se recoge, entre otras cosas un documento internacionalmente reconocido con | ||
+ | los 10 riesgos de seguridad más importantes en la actualidad en aplicaciones web. | ||
===API=== | ===API=== | ||
Línea 34: | Línea 50: | ||
$stmt->bind_param($tipos, ...&$parametros) | $stmt->bind_param($tipos, ...&$parametros) | ||
</source> | </source> | ||
+ | Lo que realiza este operador especificado con los tres puntos '''''...''''', es extraer cada uno de los elementos del array y ponerlos como una lista de valores | ||
+ | <source lang=php> | ||
+ | $stmt->bind_param($tipos, ...&$parametros) | ||
+ | </source> | ||
+ | Tras desempaquetar $parametros, obtendríamos | ||
+ | <source lang=php> | ||
+ | $stmt->bind_param($tipos, &$v1, &$v2) | ||
+ | </source> | ||
+ | |||
+ | ===Realizar solicitud curl=== | ||
+ | https://superuser.com/questions/149329/what-is-the-curl-command-line-syntax-to-do-a-post-request | ||
+ | *Muy interesante de de lazy (copiar del inspect element que ofrece el navegador) | ||
+ | ===Jupyter para php=== | ||
+ | * Investigar cómo usando '''''conda''''' puedo crear un entorno de php y crear con jupyter un curso/documentación con su nootebook | ||
+ | {{Tip|Es una pasada}} | ||
+ | https://github.com/Litipk/Jupyter-PHP | ||
+ | https://anaconda.org/auto/php | ||
+ | https://litipk.github.io/Jupyter-PHP-Installer/ | ||
+ | |||
+ | ===Xdebug=== | ||
+ | *Habilitar deshabilitar el módulo de xdebug en php (Par instalar conda de php necesito que esté deshabilitado) | ||
+ | sudo phpenmod -s cli xdebug //habilita | ||
+ | sudo phpdismod -s cli xdebug //Deshabilita | ||
+ | *Rebotar luego el servicio | ||
+ | ===Vld: ver el código compilado por php=== | ||
+ | https://gist.github.com/nikic/6699370 | ||
+ | http://blog.golemon.com/2008/01/understanding-opcodes.html | ||
+ | paquete vld http://pecl.php.net/package/vld | ||
+ | https://www.programmersought.com/article/1405109883/ | ||
+ | ===Vesta=== | ||
+ | ;Scricpt para crear usuarios en vesta | ||
+ | Crear un fichero de texto con los datos de usuario mail y dominio llamado por ejemplo usuairos.txt | ||
+ | |||
+ | <source lang=bash> | ||
+ | #! /bin/bash | ||
+ | |||
+ | while read user mail web | ||
+ | do | ||
+ | ./v-add-user $user $user $mail | ||
+ | ./v-add-web-domain $user $web | ||
+ | done < /home/manuel/usuarios.txt | ||
+ | </source> | ||
+ | ;Bug con phpmyadmin en vesta | ||
+ | https://forum.vestacp.com/viewtopic.php?f=14&t=10307 | ||
+ | *Instalar laravel en vesta | ||
+ | https://paraisolinux.com/instalar-laravel-vesta-panel/ | ||
+ | |||
+ | ===Gestionar QR desde php=== | ||
+ | https://sourceforge.net/projects/phpqrcode/files/latest/download | ||
+ | |||
+ | ===heroku: App para apicaciones de php en la nube=== | ||
+ | https://dashboard.heroku.com/apps/mrmprobando/deploy/heroku-git | ||
+ | |||
+ | ===Crear un test=== | ||
+ | *Creo una carpeta llamada test | ||
+ | *Agrego en el composer.json del proyecto | ||
+ | |||
+ | *Escribo un directorio llamado '''''test''''' | ||
+ | *Creo una clase con el nombre de la clase que quiero testear terminada en test, extiende de | ||
+ | https://ricardogeek.com/como-realizar-pruebas-unitarias-con-phpunit/ | ||
+ | |||
+ | ===Cambiar en diferentes versiones=== | ||
+ | https://diarioprogramador.com/como-instalar-distintas-versiones-de-php-en-ubuntu/ | ||
+ | |||
+ | *Al instalar una versión de php se crea un directorio | ||
+ | <source lang=bash> | ||
+ | big-pitufin% pwd | ||
+ | /etc/php | ||
+ | big-pitufin% ls | ||
+ | 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 | ||
+ | big-pitufin% | ||
+ | </source> | ||
+ | *Para cambiar de una versión a otra puedo ejecutar el comando | ||
+ | <source lang=bash> | ||
+ | sudo update-alternatives --set php /usr/bin/php5.6 | ||
+ | </source> | ||
+ | O bien en su configuración | ||
+ | <source lang=bash> | ||
+ | sudo update-alternatives --set php /usr/bin/php5.6 | ||
+ | </source> | ||
+ | |||
+ | ===Ejecutar un comando de sudo con php=== | ||
+ | *Creo que la primera opción es la más interesante y segura, '''''permitir la ejecución con sudo sin pass para un comando concreto''''': | ||
+ | https://localcoder.org/php-sudo-in-shell-exec | ||
+ | ===Grárficos con php=== | ||
+ | *Miro esta librería | ||
+ | https://github.com/vivesweb/php-libplot | ||
+ | *Para Înstalarlo voy siguiendo los paquetes que me pide: | ||
+ | *Me redirige a esta página | ||
+ | https://github.com/vivesweb/graph-php | ||
+ | *Requerimientos para instalar graph-php | ||
+ | img2img (https://github.com/vivesweb/img2img) | ||
+ | ext-op-ml-php (https://github.com/vivesweb/ext_op_ml) | ||
+ | Requires DeJaVu Fonts: (https://travis-ci.org/dejavu-fonts/dejavu-fonts) | ||
+ | |||
+ | *He tenido un problema la instalar php-gd y he tenido que instalar previamente '''''libgd3''''' | ||
+ | <source lang=bash> | ||
+ | sudo apt install libgd3 | ||
+ | sudo apt-get install php-gd | ||
+ | </source> | ||
+ | *No suele ser necesario, pero recomiendas | ||
+ | <source lang=bash> | ||
+ | sudo apt install php-imagick | ||
+ | </source> | ||
+ | |||
+ | ===Usar linter en php=== | ||
+ | *Usar un ''''linter de código PHP'''' | ||
+ | *Es una herramienta que ayuda a los desarrolladores a identificar posibles errores, problemas de estilo y prácticas no recomendadas en su código fuente PHP. El término "linter" proviene de la combinación de las palabras "lint" y "er" (un programador humorístico). | ||
+ | |||
+ | * '''PHP CodeSnifer''' es una herramienta que nos va a permitir detectar posibles o potenciales errores o malas prácticas en nuestro programa | ||
+ | https://github.com/squizlabs/PHP_CodeSniffer/wiki | ||
+ | https://github.com/squizlabs/PHP_CodeSniffer?tab=readme-ov-file | ||
+ | * '''PHP Stan''' es otro linter de php | ||
+ | https://phpstan.org/user-guide/getting-started |
Última revisión de 18:55 14 nov 2024
|
Contenido
- 1 Controlando la salida que genera php
- 2 Seguridad en la web
- 3 API
- 4 Para bind_param
- 5 Usar el operador de desempaquetado o splat operator ...
- 6 Realizar solicitud curl
- 7 Jupyter para php
- 8 Xdebug
- 9 Vld: ver el código compilado por php
- 10 Vesta
- 11 Gestionar QR desde php
- 12 heroku: App para apicaciones de php en la nube
- 13 Crear un test
- 14 Cambiar en diferentes versiones
- 15 Ejecutar un comando de sudo con php
- 16 Grárficos con php
- 17 Usar linter en php
Controlando la salida que genera php
- ob_start
https://www.php.net/manual/es/ref.outcontrol.php https://desarrolloweb.com/articulos/control-de-salida-php.html
Seguridad en la web
https://owasp.org/
- Web donde se recoge, entre otras cosas un documento internacionalmente reconocido con
los 10 riesgos de seguridad más importantes en la actualidad en aplicaciones web.
API
https://medium.com/the-era-of-apis/how-to-use-an-api-with-php-complete-beginners-guide-4283f9f8d9b3 https://docs.rapidapi.com/docs/api-pricing
Para bind_param
- Usar el método como una llamada callback usando la función del sistema 'call_user_func'
- https://www.php.net/manual/es/function.call-user-func-array.php
$con = new mysqli(...); $stmt = $con->stmt_init (); $sentencia = "Select * from tabla where c1=?, and c2=?"; $stmt->prepare($sentencia); $tipos ="ss"; $parametros =[$tipos, $v1, $v2]; if ( call_user_func_array( [$stmt, 'bind_param'], ( $parametros ) ) === false ) echo "OK"; else echo "No ok!!";
Usar el operador de desempaquetado o splat operator ...
https://www.php.net/manual/en/migration56.new-features.php#migration56.new-features.splat
$con = new mysqli(...); $stmt = $con->stmt_init (); $sentencia = "Select * from tabla where c1=?, and c2=?"; $stmt->prepare($sentencia); $tipos ="ss"; $parametros =[$v1, $v2]; $stmt->bind_param($tipos, ...&$parametros)
Lo que realiza este operador especificado con los tres puntos ..., es extraer cada uno de los elementos del array y ponerlos como una lista de valores
$stmt->bind_param($tipos, ...&$parametros)
Tras desempaquetar $parametros, obtendríamos
$stmt->bind_param($tipos, &$v1, &$v2)
Realizar solicitud curl
https://superuser.com/questions/149329/what-is-the-curl-command-line-syntax-to-do-a-post-request
- Muy interesante de de lazy (copiar del inspect element que ofrece el navegador)
Jupyter para php
- Investigar cómo usando conda puedo crear un entorno de php y crear con jupyter un curso/documentación con su nootebook
Tip: Es una pasada
https://github.com/Litipk/Jupyter-PHP https://anaconda.org/auto/php https://litipk.github.io/Jupyter-PHP-Installer/
Xdebug
- Habilitar deshabilitar el módulo de xdebug en php (Par instalar conda de php necesito que esté deshabilitado)
sudo phpenmod -s cli xdebug //habilita sudo phpdismod -s cli xdebug //Deshabilita
- Rebotar luego el servicio
Vld: ver el código compilado por php
https://gist.github.com/nikic/6699370 http://blog.golemon.com/2008/01/understanding-opcodes.html paquete vld http://pecl.php.net/package/vld https://www.programmersought.com/article/1405109883/
Vesta
- Scricpt para crear usuarios en vesta
Crear un fichero de texto con los datos de usuario mail y dominio llamado por ejemplo usuairos.txt
#! /bin/bash while read user mail web do ./v-add-user $user $user $mail ./v-add-web-domain $user $web done < /home/manuel/usuarios.txt
- Bug con phpmyadmin en vesta
https://forum.vestacp.com/viewtopic.php?f=14&t=10307
- Instalar laravel en vesta
https://paraisolinux.com/instalar-laravel-vesta-panel/
Gestionar QR desde php
https://sourceforge.net/projects/phpqrcode/files/latest/download
heroku: App para apicaciones de php en la nube
https://dashboard.heroku.com/apps/mrmprobando/deploy/heroku-git
Crear un test
- Creo una carpeta llamada test
- Agrego en el composer.json del proyecto
- Escribo un directorio llamado test
- Creo una clase con el nombre de la clase que quiero testear terminada en test, extiende de
https://ricardogeek.com/como-realizar-pruebas-unitarias-con-phpunit/
Cambiar en diferentes versiones
https://diarioprogramador.com/como-instalar-distintas-versiones-de-php-en-ubuntu/
- Al instalar una versión de php se crea un directorio
big-pitufin% pwd /etc/php big-pitufin% ls 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 big-pitufin%
- Para cambiar de una versión a otra puedo ejecutar el comando
sudo update-alternatives --set php /usr/bin/php5.6
O bien en su configuración
sudo update-alternatives --set php /usr/bin/php5.6
Ejecutar un comando de sudo con php
- Creo que la primera opción es la más interesante y segura, permitir la ejecución con sudo sin pass para un comando concreto:
https://localcoder.org/php-sudo-in-shell-exec
Grárficos con php
- Miro esta librería
https://github.com/vivesweb/php-libplot
- Para Înstalarlo voy siguiendo los paquetes que me pide:
- Me redirige a esta página
https://github.com/vivesweb/graph-php
- Requerimientos para instalar graph-php
img2img (https://github.com/vivesweb/img2img) ext-op-ml-php (https://github.com/vivesweb/ext_op_ml) Requires DeJaVu Fonts: (https://travis-ci.org/dejavu-fonts/dejavu-fonts)
- He tenido un problema la instalar php-gd y he tenido que instalar previamente libgd3
sudo apt install libgd3 sudo apt-get install php-gd
- No suele ser necesario, pero recomiendas
sudo apt install php-imagick
Usar linter en php
- Usar un 'linter de código PHP'
- Es una herramienta que ayuda a los desarrolladores a identificar posibles errores, problemas de estilo y prácticas no recomendadas en su código fuente PHP. El término "linter" proviene de la combinación de las palabras "lint" y "er" (un programador humorístico).
- PHP CodeSnifer es una herramienta que nos va a permitir detectar posibles o potenciales errores o malas prácticas en nuestro programa
https://github.com/squizlabs/PHP_CodeSniffer/wiki https://github.com/squizlabs/PHP_CodeSniffer?tab=readme-ov-file
- PHP Stan es otro linter de php
https://phpstan.org/user-guide/getting-started