|
|
(4 revisiones intermedias por el mismo usuario no mostrado) |
Línea 362: |
Línea 362: |
| # '''''print''''' | | # '''''print''''' |
| *Existen otras funciones que iremos viendo según avance el curso | | *Existen otras funciones que iremos viendo según avance el curso |
− | printf, | + | printf, var_dump, print_r, .... |
| </div> | | </div> |
| | | |
Línea 411: |
Línea 411: |
| <div class='slide'> | | <div class='slide'> |
| ===Comentarios === | | ===Comentarios === |
− | *Son ignorados por el intérprete, no generan instrucciones, pero se consideran parte del software | + | *Son ignorados por el intérprete |
| + | *No generan instrucciones |
| + | *Se consideran parte del software |
| + | </div> |
| + | <div class='slide'> |
| *En php tengo 4 formas de hacer comentarios | | *En php tengo 4 formas de hacer comentarios |
| + | <div style=font-size:20px> |
| <source lang=php> | | <source lang=php> |
| <?php | | <?php |
Línea 427: |
Línea 432: |
| /** | | /** |
| Este comentario permite insertar información | | Este comentario permite insertar información |
− | Para que luego phpDocumentor genere una página web | + | Para que luego php Documentor genere una página web |
| Con la información de mi código | | Con la información de mi código |
| */ | | */ |
| </source> | | </source> |
− | *Así como comentar las funciones como veremos
| + | </div> |
| + | </div> |
| + | <div class='slide'> |
| *Este código nos visualizará lo siguiente | | *Este código nos visualizará lo siguiente |
| <source lang=php> | | <source lang=php> |
Línea 459: |
Línea 466: |
| | | |
| <div class="slide"> | | <div class="slide"> |
| + | <div style=font-size:18px> |
| {{MRM_Actividad|Title=probando comentarios | | | {{MRM_Actividad|Title=probando comentarios | |
| *Escribe la siguiente función anterior en un fichero php | | *Escribe la siguiente función anterior en un fichero php |
− |
| |
| <source lang=php> | | <source lang=php> |
| function miFuncion($num1, $num2){ | | function miFuncion($num1, $num2){ |
Línea 469: |
Línea 476: |
| return $num2; | | return $num2; |
| </source> | | </source> |
| + | }} |
| + | </div> |
| + | |
| + | </div> |
| + | <div class='slide'> |
| Ahora justo en la línea de encima de función escribe | | Ahora justo en la línea de encima de función escribe |
| <source lang=php> | | <source lang=php> |
Línea 475: |
Línea 487: |
| *y luego presiona intro | | *y luego presiona intro |
| *Te debería de quedar | | *Te debería de quedar |
| + | <div style=font-size:18px> |
| <source lang=php> | | <source lang=php> |
| /** | | /** |
Línea 489: |
Línea 502: |
| | | |
| </source> | | </source> |
− | }}
| + | </div> |
| </div> | | </div> |
| <div class='slide'> | | <div class='slide'> |
Introducción a PHP
Sección de introducción a PHP
- En esta sección veremos qué es el lenguaje php y para qué sirve.
|
Qué es php
- PHP (acrónimo de PHP: Hypertext Preprocessor)
- Es un lenguaje de código abierto.
- Muy popular (Podríamos pensar en un estándar?)
- Gran comunidad con soporte en internet que aporta, colabora y soluciona dudas.
- Para el desarrollo web.
- Nueva versión 7 con grandes cambios en el motor.
- Se usa mucho la versión 5.9
- Actualmente está la versión 7.2.9 (16 Aug 2018).
- Principales cambios en el motor de ejecución (Mucho mas potente).
- Muy pocas imcompatibilidades.
- Permite tipados explícitos.
- características de php
Tip:
- En las aplicaciones de desarrollo web
- Se ejecuta en el servidor web
- Es incrustado en HTML.
- El cliente solo ve el resultado de la ejecución nunca el código
- Obtención del lenguaje de marcas para mostrar en el cliente
- El documento PHP, una vez interpretado correctamente en el servidor, produce generalmente una página HTML que será enviada al cliente.
|
- El servidor en acción
- El código PHP está embebido en documentos HTML,
- Esto permite introducir dinamismo fácilmente a un sitio web.
|
- El servidor en acción
- El intérprete PHP ignora el texto
- Busca etiquetas de inicio del bloque de código PHP.
- Interpreta las instrucciones hasta el final de etiqueta
- Repite el proceso hasta el final del fichero
- Reescribe el fichero entero sustituyendo el código php por la salida de texto que genera
- Dicho fichero se le entrega al cliente
|
Restricciones del servidor con php
- Como PHP se ejecuta del lado del servidor sólo puede tener acceso a los datos del propio servidor.
Restricciones de php
- No puede acceder a los recursos del cliente
- No puede saber qué hora es en el cliente
- No puede acceder a los archivos del cliente
- Salvo la excepción de las Cookies
|
Configuraciones
- Servicio independiente (PHP-FPM (FastCGI Process Manager)).
- Como un módulo de apache, php-mod.
Cómo escribir PHP
<?php
instrucciones
?>
- Nosotros siempre usaremos este estilo para escribir código
- Lo podemos embeber en código html .... o no.
- Otros modos menos usados
- Estilo asp
<%
instrucciones
%>
- Para ello hemos de tener habilitado la etiqueta de php.ini
asp_tags 1
- Estilo corto
<?
instrucciones
?>
- Para ello hemos de tener habilitado la etiqueta de php.ini
short_open_tag 1
- Sintaxis para editores HTML
<SCRIPT LANGAGE="PHP">
instrucciones
</SCRIPT>
Tip:
- En la versión 7.0.0 de php se elimina las etiquetas siguientes:
- <%, %> (formato ASP)
- #<%= (formato corto)
- y la etiqueta de script <script language=""
- Guardamos el fichero con extensión .php
- Así sabemos que el interprete php tiene que ejecutar código
Probando primer programa
Tip: 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()
Primer programa |
---|
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
phpinfo();
?>
</body>
</html>
|
Probando la extensión
- Verifica qué ocurre si la extensión del fichero no es php.
|
Programa: conjunto de instrucciones
Objetivo
Un programa es un conjunto de instrucciones
- Analizaremos las instrucciones que hay.
- Posteriormente Veremos cómo se escriben en php.
|
Planteando un lenguaje de programación
- Léxicos
- Son las palabras reservadas del lenguaje.
http://php.net/manual/es/reserved.keywords.php
- Sintaxis
Reglas de construcción.
Son las ya conocidas, pero veremos cómo se construyen las expresiones.
- Semántica
Habla del significado.
- Estudiaremos alguna peculiaridad, como el hecho de que php es un lenguaje altamente orientado a expresiones
|
Instrucciones en un lenguaje de programación
- Inicio Fin de bloque
- Instrucción/función de leer del teclado, escribir por pantalla
- Declaraciones (variables, constantes, funciones, clases, objetos, ...)
- Asignación
- Invocación (llamada a función o método)
- Estructura de control (selectiva, iterativa)
- Instrucción de inicio fin de bloque
{ //Instrucción de inicio de bloque
} //Instrucción de fin de bloque
PHP instrucción inicio fin
- En PHP el bloque inicio y fin está especificado con los caracteres
{ //inicio de bloque
} //fin de bloque
|
- inicio del programa se especifica con las etiquetas
<?php //Etiqueta de inicio de script
?> //Etiqueta de fin de script
}}
- Separando instrucciones
- ; (punto y coma)
- Su uso es obligatorio.
- En la última instrucción se puede obviar (excepción).
- ?> implica esta instrucción.
- La instrucción inicio de bloque y fin de bloque no lleva nunca ;
Tip: Si sólo queremos insertar 1 instrucción puede ser interesante obviar el
;.
<html>
......
<?php echo "hola" ?>
<!-- instrucciones html -->
<?php echo "otro hola" ?>
<!-- mas instrucciones html -->
<?php echo "otra instrucción " ?>
.....
</html>
- Poniendo ;
Tip: También puede haber ;
<html>
......
<?php echo "hola" ;?>
<!-- instrucciones html -->
<?php echo "otro hola" ; ?>
<!-- mas instrucciones html -->
<?php echo "otra instrucción " ; ?>
.....
</html>
Probando código php
- Haz un programa que dónde incluyas código dentro del body.
- Muestra con etiqueta h1, h2 y h3 tres frases.
- Utiliza la función echo para visualizar.
- Muestra en el título un texto escrito desde php.
- Compara el fichero del servidor con el que recibe el cliente.
|
Posible solución |
---|
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
<?php
echo "Este es un título desde php"
?>
</title>
</head>
<body>
<?php
echo "<h1>Mensaje en texto de h1</h1>";
echo "<h2>Mensaje en texto de h2</h2>";
echo "<h3>Mensaje en texto de h3</h3>";
?>
</body>
</html>
|
}}
- Esto es lo que ve el cliente
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
Este es un título desde php
</title>
</head>
<body>
<h1>Mensaje en texto de h1</h1>
<h2>Mensaje en texto de h2</h2>
<h3>Mensaje en texto de h3</h3>
</body>
</html>
Funciones de salida
- Construcciones básicas para salida de caracteres
- En PHP,en realidad no son funciones por lo que pueden ir sin paréntesis (con o sin paréntesis):
- echo
- print
- Existen otras funciones que iremos viendo según avance el curso
printf, var_dump, print_r, ....
echo
- Es el uso más sencillo
- Imprime una cadena como argumentos
- En la versión sin paréntesis , también puedes pasar una lista de argumentos.
<?php
*echo “primer argumento”, “segundo argumento”, “tercer argumento”
?>
print
- Esta sentencia es igual en uso y funcionalidad que echo
- Tiene dos diferencias con echo
- Sólo puede aceptar un argumento
- Devuelve un valor booleano que representa si la sentencia ha tenido exito o no
Observa el siguiente código e indica si es o no correcto
echo 'hola caracola', 'hola','como estás';
- Correcto
- Cierto, echo admite una lista de parámetros
- Incorrecto
print 'hola caracola', 'hola','como estás';
- Correcto
- Incorrecto
- Cierto, print no permite un listado de parámetros
Comentarios
- Son ignorados por el intérprete
- No generan instrucciones
- Se consideran parte del software
- En php tengo 4 formas de hacer comentarios
<?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 php Documentor genere una página web
Con la información de mi código
*/
- Este código nos visualizará lo siguiente
El resto del código será ignorado
- Es bueno escribir al principio del script
<?php
/**
* User: Nombre y apellidos
* Date: 19/10/17
* Version: 17:40
*/
- Aquí tienes la referencia para ver las diferentes directivas para generar código
- Más adelante en el curso las veremos.
probando comentarios
- Escribe la siguiente función anterior en un fichero php
function miFuncion($num1, $num2){
if ($num1>$num2)
return $num1;
else
return $num2;
|
Ahora justo en la línea de encima de función escribe
- y luego presiona intro
- Te debería de quedar
/**
*
* @param type $num1
* @param type $num2
* @return type
*/
function miFuncion($num1, $num2){
if ($num1>$num2)
return $num1;
else
return $num2;
Dónde poner el código embebido
Pregunta
Dónde escribir código php
|
- Donde queramos que se ejecute algo
- 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
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)
|
Empecemos aplicar el modelo vista controlador
- Podemos llevar este criterio desde el principio siguiente el esquema siguiente
esqueleto MVC |
---|
<!-- Empecemos nuestro fichero escribiendo instrucciones php
Estas instrucciones realizarán cálculos y obtendrán valores
En ningúm momento generan salidas,
Trataremos de almacenar los valores en variables
-->
<?php
//instrucciones php
$variables = "Mensaje escrito desde php";
?>
<!--Ahora el código html-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>probando php</title>
</head>
<body>
<!--Dentro del html cuando necesitemos ver valores
los escribiemo
También puede ser que necesitemos instrucciones
las escribimos, pero intentando escribir lo necesario.
Esto es vista
-->
<h1> <?php echo $variable ?></h1>
</body>
</html>
|
|
|
Programa para ver si un número es o no par
|
|
No te preocupes si no entiendes el código, lo iremos viendo
<?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>
|
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
include('ruta/nobrefichero');
require('ruta/nobrefichero');
include_once('ruta/nombrefichero');
require_once('ruta/nombrefichero');
- 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.
- 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
|
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
|
Probando include require
{{{1}}}
|