|
|
(25 revisiones intermedias por el mismo usuario no mostrado) |
Línea 13: |
Línea 13: |
| *Es un lenguaje de código abierto | | *Es un lenguaje de código abierto |
| *Muy popular (Podríamos pensar en un estándar?), una gran comunidad de soporte en internet que aporta, colabora y soluciona dudas | | *Muy popular (Podríamos pensar en un estándar?), una gran comunidad de soporte en internet que aporta, colabora y soluciona dudas |
− | *Especialmente adecuado para desarrollo web (Se puede usar como lenguaje de escritorio, pero no es su propósito). | + | *Especialmente adecuado para desarrollo web (Se puede usar como lenguaje de escritorio, pero no es su principal propósito). |
− | *Actualmente está la versión 7.2, aún en beta (28-Septiembre-2017), siendo la 7.1.10 la última estable | + | *Actualmente está la versión 8.2 actualizada es considerada la versión estable |
| + | *En el repositorio de ubuntu está especificada igualmente la versión 8.2,y se recomienda usarla como versión para desarrollo |
| *Ver las nuevas características de php | | *Ver las nuevas características de php |
− | {{MRM_Recursos de la Web|Title=Caracterísitcas de php 7| | + | {{MRM_Recursos de la Web|Title=Caracterísitcas de php 8.2| |
− | http://php.net/manual/es/migration70.php
| + | https://www.php.net/releases/8.2/en.php |
| }} | | }} |
− | *Se usa mucho la versión 5.9
| |
| </div> | | </div> |
| | | |
| <div class="slide"> | | <div class="slide"> |
| ;características de php | | ;características de php |
− | {{Tip| | + | {{MRM_Resumen|Title=Recuerda| |
| *'''''En las aplicaciones de desarrollo web ''''' | | *'''''En las aplicaciones de desarrollo web ''''' |
| #Se ejecuta en el '''''servidor web''''' | | #Se ejecuta en el '''''servidor web''''' |
Línea 59: |
Línea 59: |
| | | |
| <div class="slide"> | | <div class="slide"> |
| + | |
| ===Restricciones del servidor con php=== | | ===Restricciones del servidor con php=== |
| *Como PHP se ejecuta del lado del servidor sólo puede tener acceso a los datos del propio servidor. | | *Como PHP se ejecuta del lado del servidor sólo puede tener acceso a los datos del propio servidor. |
Línea 91: |
Línea 92: |
| ===Cómo escribir PHP=== | | ===Cómo escribir PHP=== |
| *Dentro de páginas html | | *Dentro de páginas html |
− | '''<?php''' | + | <source lang=php> |
− | '' instrucciones''
| + | <?php |
− | '''?>''' | + | instrucciones |
| + | ?> |
| + | </source> |
| *Nosotros siempre usaremos este estilo para escribir código | | *Nosotros siempre usaremos este estilo para escribir código |
− | *Lo podemos embeber en código html .... o no. | + | *Otros estilos anteriormente permitido están en desuso o no permitidos |
− | </div> | + | {{MRM_Resumen|Title=Estilo actualmente descatalogados| |
| + | *En la versión 7.0.0 de php se eliminan(Desaconsejan) las etiquetas siguientes: |
| + | #'''''<nowiki><%, %> (formato ASP)</nowiki>''''' |
| + | #'''''<nowiki>#<%= (formato corto)</nowiki>''''' |
| + | #'''''<nowiki>y la etiqueta de script <script language=""</nowiki>'''''></script> |
| + | }} |
| | | |
− | <div class="slide">
| |
− | ;Otros modos menos usados
| |
− | :Estilo asp
| |
− | '''<%'''
| |
− | '' instrucciones''
| |
− | '''%>'''
| |
− | *Para ello hemos de tener habilitado la etiqueta de php.ini
| |
− | asp_tags 1
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Estilo corto
| |
− | '''<?'''
| |
− | '' instrucciones''
| |
− | '''?>'''
| |
− | *Para ello hemos de tener habilitado la etiqueta de php.ini
| |
− | short_open_tag 1
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Sintaxis para editores HTML
| |
− | '''<SCRIPT LANGAGE="PHP">'''
| |
− | '' instrucciones''
| |
− | '''</SCRIPT>'''
| |
− | {{Tip|<nowiki>En la versión 7.0.0 de php se elimina las etiquetas siguientes:
| |
− | <ul>
| |
− | <ol>'''''<%, %> (formato ASP)'''''</ol>
| |
− | <ol>#'''''#<%= (formato corto)'''''</ol>
| |
− | <ol>#'''''y la etiqueta de script <script language="php"'''''</ol></ul></nowiki>>
| |
− | }}
| |
| *Guardamos el fichero con extensión .php | | *Guardamos el fichero con extensión .php |
| **Así sabemos que el interprete php tiene que ejecutar código | | **Así sabemos que el interprete php tiene que ejecutar código |
Línea 134: |
Línea 112: |
| <div class="slide"> | | <div class="slide"> |
| {{MRM_Actividad|Title=Probando primer programa| | | {{MRM_Actividad|Title=Probando primer programa| |
− | {{Tip|existen una función llamada '''''phpinfo()''''' que vamos a probar la información que genera}} | + | {{MRM_Resumen|Title=Información|existen una función llamada '''''phpinfo()'''''. |
| + | *Vamos a probarla y ver la información que genera}} |
| *Haz un programa que en php que ejecute la función '''''phpinfo()''''' | | *Haz un programa que en php que ejecute la función '''''phpinfo()''''' |
| {{Plegable|hide|Primer programa| | | {{Plegable|hide|Primer programa| |
| <source lang=php> | | <source lang=php> |
− | <?php
| + | |
| <html> | | <html> |
| <head> | | <head> |
Línea 150: |
Línea 129: |
| </body> | | </body> |
| </html> | | </html> |
− | ?>
| |
| </source> | | </source> |
| }} | | }} |
| }} | | }} |
| </div> | | </div> |
− |
| |
| <div class="slide"> | | <div class="slide"> |
| | | |
− | ===Dónde poner el código embebido===
| + | {{MRM_Actividad|Title=Probando la extensión| |
− | <br/>
| + | ;Verifica a ver qué ocurre si la extensión del fichero no es php |
− | {{MRM_Pregunta|Dónde escribir código php|{{feedback|Dónde queramos que se ejecute algo}} }} | + | |
− | </div>
| + | |
− | | + | |
− | <div class="slide">
| + | |
− | <hr />
| + | |
− | *Donde queramos que se ejecute algo
| + | |
− | <hr/>
| + | |
− | [[Imagen:codigoPHP.png|center|900px]]
| + | |
− | *Se ejecuta como si fuera un solo programa
| + | |
− | *A la hora de incluir php podemos se usa mucho la filosofía Modelo Vista /Controlador que veremos en otro tema
| + | |
− | {{MRM_Resumen|Title=Modelo vista controlador|
| + | |
− | *Trata de separar el código según su cometido, de forma muy resumida
| + | |
− | *Hay acciones que realizan cálculos y obtienen resultados (Controlador
| + | |
− | *Hay acciones que lo que hacen es visualziar valores (Vista)
| + | |
− | *Hay acciones que se encargan de interactuar con la base de datos (Modelo)
| + | |
− | }}
| + | |
− | {{MRM_Puntos clave|Title=Empecemos aplicar el modelo vista controlador|
| + | |
− | *Podemos llevar este criterio desde el principio siguiente el esquema siguiente
| + | |
− | {{Plegable|hide|esqueleto MVC|
| + | |
− | <source lang=html5>
| + | |
− | </source>
| + | |
− | }}
| + | |
− | }}
| + | |
− | | + | |
− | {{MRM_Ejemplo|Title=Programa para ver si un número es o no par|
| + | |
− | No te preocupes si no entiendes el código, lo iremos viendo
| + | |
− | <source lang=php>
| + | |
− | <?php
| + | |
− | | + | |
− | //-----------CONTROLADOR-----------------------------
| + | |
− | //Instrucciones que realizan cálculos
| + | |
− | //Guardo el resultado que quiero mostrar en variables
| + | |
− | $a = rand(1, 100); //Genero un número aleatorio
| + | |
− | $fecha = date("d m Y", time()); //Obtenemos la fecha
| + | |
− | $title = "Hoy, $fecha, veremos si '$a' es par o impar "; //Creo un título
| + | |
− | if ($a % 2 == 0) //Si el número es par
| + | |
− | $msj = "El número $a es par";
| + | |
− | else
| + | |
− | $msj = "El número $a es impar";
| + | |
− | ?>
| + | |
− | | + | |
− | <!-- Ahora metemos el código php cuando lo necesitemos-->
| + | |
− | <!------------------- VISTA (solo la parte php)----------------------->
| + | |
− | <!DOCTYPE html>
| + | |
− | <html>
| + | |
− | <head>
| + | |
− | <meta charset="UTF-8">
| + | |
− | <title>probando php</title>
| + | |
− | </head>
| + | |
− | <body>
| + | |
− | <h1> <?php echo $title ?></h1>
| + | |
− | <hr />
| + | |
− | <h3> <?php echo $msj ?></h3>
| + | |
− | | + | |
− | </body>
| + | |
− | </html>
| + | |
− | </source>
| + | |
− | | + | |
− | | + | |
− | }}
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | </div>
| + | |
− | | + | |
− | <div class="slide">
| + | |
− | ===Escribir PHP con directivas de inclusión===
| + | |
− | *Podemos escribir el código php escribiéndolo en un fichero aparte y luego lo incluimos.
| + | |
− | **Incluimos el fichero explícitamente
| + | |
− | **Para ello usamos directivas o instrucciones del tipo '''''include'''''
| + | |
− | <source lang=php>
| + | |
− | include('ruta/nobrefichero');
| + | |
− | require('ruta/nobrefichero');
| + | |
− | include_once('ruta/nombrefichero');
| + | |
− | require_once('ruta/nombrefichero');
| + | |
− | </source>
| + | |
− | </div>
| + | |
− | | + | |
− | <div class="slide">
| + | |
− | ;Ambas son palabras reservadas del lenguaje y sirven para incluir el contenido de un fichero con sentencias php en esa posición del código.
| + | |
− | {{MRM_Puntos clave|Title=Include Vs Require|
| + | |
− | *Ambas incluyen el contenido de un fichero php en esa posición
| + | |
− | **Con include si no se encuentra se continúa ejecutando en esa posición
| + | |
− | **Con require si no está el fichero se detiene en ese punto la ejecución del script}}
| + | |
− | </div>
| + | |
− | | + | |
− | <div class="slide">
| + | |
− | {{MRM_Puntos clave|Title=include/require Vs include_once/require_once |
| + | |
− | *Ambas incluyen el contenido de un fichero php en esa posición
| + | |
− | **include/require siempre buscan e incluyen el fichero en esa posición
| + | |
− | **include_once/require_once antes de incluirlo mira a ver si ya lo incluyó previamente en cuyo caso ya no lo hace}}
| + | |
− | </div>
| + | |
− | | + | |
− | <div class="slide">
| + | |
− | {{MRM_Actividad|Title=Probando include require
| + | |
− | |Crea 4 ficheros con el siguiente código
| + | |
− | '''''fichero_include.php'''''
| + | |
− | <source lang=php>
| + | |
− | <?php
| + | |
− | echo "<b><i>Hola desde un fichero include </b></i><hr />";
| + | |
− | ?>
| + | |
− | </source>
| + | |
− | '''''fichero_include_once.php'''''
| + | |
− | <source lang=php>
| + | |
− | <?php
| + | |
− | echo "<b><i>Hola desde un fichero include once </b></i><hr />";
| + | |
− | ?>
| + | |
− | </source>
| + | |
− | '''''fichero_require.php'''''
| + | |
− | <source lang=php>
| + | |
− | <?php
| + | |
− | echo "<b><i>Hola desde un fichero require </b></i><hr />";
| + | |
− | ?>
| + | |
− | </source>
| + | |
− | '''''fichero_require_once.php'''''
| + | |
− | <source lang=php>
| + | |
− | <?php
| + | |
− | echo "<b><i>Hola desde un fichero require once </b></i><hr />";
| + | |
− | ?>
| + | |
− | </source>
| + | |
− | '''''Ahora crea un programa principal dónde uses las instrucciones de inclusión vistas en este apartado'''''.
| + | |
− | <source lang=php>
| + | |
− | <?php
| + | |
− | | + | |
− | echo "<h2>Ahora vamos a incluir un fichero con include</h2>";
| + | |
− | include 'ficheros/fichero_include.php';
| + | |
− | | + | |
− | echo "<h2>ahora vamos a incluir un fichero con require</h2>";
| + | |
− | require 'ficheros/fichero_require.php';
| + | |
− | | + | |
− | echo "<h2>Ahora vamos a incluir un fichero con include_once</h2>";
| + | |
− | include_once 'ficheros/fichero_include_once.php';
| + | |
− | | + | |
− | echo "<h2>Ahora vamos a incluir un fichero con require_once</h2>";
| + | |
− | require_once 'ficheros/fichero_require_once.php';
| + | |
− | | + | |
− | echo "<h2>Ahora vamos a incluir un fichero que no existe con include</h2>";
| + | |
− | include 'ficheros/fichero_no_existe_include.php';
| + | |
− | echo "Vemos que no pasa nada, por que el fichero no existe pero sigue <hr />";
| + | |
− | | + | |
− | echo "<h2>Ahora volvemos a incluir un fichero con include_once</h2>";
| + | |
− | include_once 'ficheros/fichero_include_once.php';
| + | |
− | echo "Vemos que no pasa nada, por que el fichero ya se había incluido y no se vuelve a incluir<hr />";
| + | |
− | | + | |
− | echo "<h2>Ahora volvemos a incluir un fichero con require_once</h2>";
| + | |
− | require_once 'ficheros/fichero_require_once.php';
| + | |
− | echo "Vemos que no pasa nada, por que el fichero ya se había incluido y no se vuelve a incluir<hr />";
| + | |
− | | + | |
− | echo "<h2>Ahora vamos a incluir un fichero con include para ver que sí que se vuelve a incluir</h2>";
| + | |
− | include 'ficheros/fichero_include.php';
| + | |
− | | + | |
− | echo "<h2>Ahora vamos a incluir un fichero con require y vemos que sí se vuelve a incluir</h2>";
| + | |
− | require 'ficheros/fichero_require.php';
| + | |
− | | + | |
− | echo "<h2>Ahora no incluimos con require un fichero que no existe</h2>";
| + | |
− | require 'ficheros/fichero_no_existe_require.php';
| + | |
− | echo "Esta línea ya no se imprimirá ni nada que vaya después de aquí";
| + | |
− | ?>
| + | |
− | </source>
| + | |
− | {{Tip|
| + | |
− | *Siéntete cómoda en modificar el fichero y ver el resultado
| + | |
− | *Observa que estas instrucciones no son exactamente funciones, por lo que no necesitan paréntesis (aunque se puede poner por mantener una homogeneidad con sintaxis del uso o invocación de funciones)
| + | |
− | <source lang=php>
| + | |
− | include 'ficheros/fichero_include.php'
| + | |
− | //Es léxicamente y sintácticamente igual que
| + | |
− | include ('ficheros/fichero_include.php');
| + | |
− | | + | |
− | </source>
| + | |
− | }}
| + | |
− | }}
| + | |
− | </div>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <div class="slide">
| + | |
− | {{MRM_Recursos de la Web|
| + | |
− | *[http://php.net/manual/es/ php] página oficial en español LO MEJOR!!!!
| + | |
− | *http://php.net/manual/es/
| + | |
− | *<!-- MRM incluir en el otro documento http://php.net/manual/es/ini.core.php -->
| + | |
− | | + | |
− | }}
| + | |
− | </div>
| + | |
− | | + | |
− | <div class=slide>
| + | |
− | ===Comentarios ===
| + | |
− | *Son ignorados por el intérprete, no generan instrucciones, pero se consideran parte del software
| + | |
− | *En php tengo 4 formas de hacer comentarios
| + | |
− | <source lang=php>
| + | |
− | <?php
| + | |
− | /*
| + | |
− | Este código no hace nada pero muestra
| + | |
− | la sintaxis de los comentarios
| + | |
− | como este que ocupa varias líneas tipo lenguaje C o Java
| + | |
− | */
| + | |
− | $miVariable= 8;// Esta parte de la línea se ignorará
| + | |
− | $miVariable+= 8;# y esta parte de línea tambien
| + | |
− | echo "Valor de la variable $miVariable";
| + | |
− | //Este es otro comentario de una sola línea
| + | |
− | #Este es otro modo de hacer comentarios tipo script de linux
| + | |
− | /**
| + | |
− | Este comentario permite insertar información
| + | |
− | Para que luego phpDocumentor genere una página web
| + | |
− | Con la información de mi código
| + | |
− | */
| + | |
− | </source>
| + | |
− | *Este código nos visualizará lo siguiente
| + | |
− | <source lang=php>
| + | |
− | Valor de la variable 16
| + | |
− | </source>
| + | |
− | El resto del código será ignorado
| + | |
− | </div>
| + | |
− | | + | |
− | <div class="slide">
| + | |
− | *Aquí tienes la referencia para ver las diferentes directivas para generar código
| + | |
− | *Más adelante en el curso las veremos.
| + | |
− | {{MRM_Recursos de la Web|
| + | |
− | *Directivas para comentarios https://phpdoc.org/docs/latest/index.html
| + | |
− | }}
| + | |
− | </div>
| + | |
− | | + | |
− | <div class="slide">
| + | |
− | {{MRM_Actividad|Title=probando comentarios |
| + | |
− | *Escribe la siguiente función anterior en un fichero php
| + | |
− | | + | |
− | <source lang=php>
| + | |
− | function miFuncion($num1, $num2){
| + | |
− | if ($num1>$num2)
| + | |
− | return $num1;
| + | |
− | else
| + | |
− | return $num2;
| + | |
− | </source>
| + | |
− | Ahora justo en la línea de encima de función escribe
| + | |
− | <source lang=php>
| + | |
− | /**
| + | |
− | </source>
| + | |
− | *y luego presiona intro
| + | |
− | *Te debería de quedar
| + | |
− | <source lang=php>
| + | |
− | /**
| + | |
− | *
| + | |
− | * @param type $num1
| + | |
− | * @param type $num2
| + | |
− | * @return type
| + | |
− | */
| + | |
− | function miFuncion($num1, $num2){
| + | |
− | if ($num1>$num2)
| + | |
− | return $num1;
| + | |
− | else
| + | |
− | return $num2;
| + | |
− |
| + | |
− | </source>
| + | |
| }} | | }} |
| </div> | | </div> |