Curso Básico de PHP

  • ¿Qué es?
  • ¿Qué puedo hacer con PHP?
  • ¿Por qué aprender PHP?
  • Requisitos

¿Qué es PHP?

En un lenguaje de programación construido especialmente para hacer desarrollo web.

¿Qué puedo hacer con PHP?

  • Scripts de consola
  • software de escritorio
  • demonios del sistema
  • Servidores de red
  • y más...

¿Por qué aprender PHP?

  • Popularidad
  • Demanda Laboral
  • Curva de aprendizaje suave
  • Cuenta con los frameworks más populares
  • Los CMS's más famosos están hechos sobre PHP

Antes de comenzar

  • HTML5 - saber escribir y anidar etiquetas
  • CSS3 - saber crear reglas y usar selectores
  • Javascript (plus)
  • Bootstrap (plus)

Sería ideal que supieras:

Instalación y Configuración

¿Requerimientos para tener un entorno de prueba local?

  • Un servidor web
  • PHP
  • Base de datos (MySQL / MariaDB)
  • Administrador de base de datos (phpmyadmin / workbench)

XAMPP

Es el entorno más popular de desarrollo con PHP

Instalando editor de código

Gratis. Código abierto. Corre en todos lados.

Cómo escribir scripts con PHP

Reglas básicas

<?php 
   echo "Hola Mundo!";
?>
index.php

// Comentarios

Utilizados para documentar código

// Comentario de una sola línea



/* 
	Comentario multi-
	Línea
*/

Tipos de datos

Un tipo de datos es un conjunto de valores y las operaciones permitidas en esos valores

// Número entero (Integer)
8
// Número flotante (Float)
8.80

Tipos de datos en php

3 grupos de tipos de datos:

  • escalares
  • compuestos
  • especiales

Escalares

// Intengers -> Números enteros
1, 2, 4, 8, 16, 32, 64, 128

// Floats -> Números con punto decimal:
1.00, 200.2, 333.33

// Strings -> cadena de caracteres:
"Azul" , 'School'

// Booleans -> (Booleanos) Solo pueden tener uno de dos valores:
true , false
 1       0

Variables

Las variables contienen los datos que tu programa puede manipular mientras se ejecuta.

Definir variables

<?php

	$name = "Carlos";

Reglas

<?php

  $_un_valor = 'abc'; // Bien
  $1numero = 1.00; // Mal
  $sin$signos% = '&^%'; // Mal
  $nombre_1_completo = "ok"; // Bien
  $nombre_1_Completo = 'no'; // Case Sensitive
  $estiloCamelCase = true; // camel case

Declaraciones y Expresiones

<?php

  // Declaración
  $edad = 28; // <- 1 expresión

Una declaración normalmente le dice al motor de PHP que realice una acción y siempre finaliza con punto y coma. Una expresión es cualquier cosa que genere un valor.

Operadores

Los operadores nos permiten realizar operaciones entre dos operandos (expresiones)

  • Aritméticos
  • De asignación
  • De comparación
  • Lógicos
  • De incremento y decremento

Operadores Aritméticos

<?php

	/* Operadores aritméticos: 
    
    	Suma: 8 + 10
        Resta: 1 - 1
        Multiplicación: 4 * 4
        División: 8 / 3
        Módulo: 8 % 3
        Potencia: 2 ** 2
    
    */
   

Manipulación de tipos

PHP intenta convertir el tipo de dato del valor de una variable a otra cuando hay un contexto en el que el tipo de dato que se requiere es diferente.

(Type Juggling)

Concatenación

Une dos valores, por lo general del tipo strings

( PHP intentará convertir a string si en el contexto es necesario)

Operadores de

Comparación

Toman dos expresiones y las comparan, retornando un resultado de la comparación como un valor Booleano: true / false

Operadores de

Comparación

<?php

/*
	
    menor que: <
    menor o igual que: <=
    mayor que: >
    mayor o igual que: >=
    
 */
   
<?php

/*
	
    spaceship: <=>
    igual a: ==
    diferente a: !=
    idéntico a: ===
    NO idéntico a: !==
    
 */
   

Operadores lógicos

<?php

// Operador: or, o, disyunción, ||

// Operador: and, y, conjunción, &&

// Operador: not, no, negación, !

Nos permite realizar operaciones lógicas / binarias a expresiones. El resultado que retoranan siempre es boolean.

Operador lógico: &&

<?php

true && true // -> true

true && false // -> false

false && false // -> false

El operador de conjunción: necesita que las expresiones evaluadas resulten true para que el resultado final sea true

Operador lógico: ||

<?php

true || true // -> true

true || false // -> true

false || false // -> false

El operador de disyunción: solo requiere que una de las expresiones evaluadas sea true para que el resultado final sea true

Operador lógico: !

<?php

!true // -> false

!false // -> true

Se aplica sobre una expresión y devolverá el negativo de la misma: si es true, será false y viceversa.

Módulo 2

tomando desiciones

<?php

/* RESUMEN MÓDULO 1

	1.- Variables y tipos de datos
	2.- Operadores:
		- Aritméticos
		- De comparación
		- Lógicos
 */


SI (FRIO == TRUE) {
	// Entonces me abrigo mejor.
}

if

<?php

$logged_in = true;

if ( $logged_in ) {
	
    // Código que se ejecuta si el usuario ha iniciado sesión.

}
<?php

$logged_in = true;

if ( $logged_in ) {
	
	// Código que se ejecuta si la condición es true.

}
else {
	// Código que se ejcuta si la condición es false.
}

else

¿Qué hacer sino es true la condición?

elseif

<?php

if ( condicion_1 ) {

}
elseif( condicion_2 ) {
	
}
elseif( condicion_3 ) {
	
}
else {

}

Nos permite evaluar otra condición.

switch - case

Evalúa una sola expresión y ejecuta el bloque de código que coincida con el valor de la expresión

<?php

switch ($menu) {
    case 'inicio':
        echo "<h1>Bienvenido a nuestro sitio web</h1>";
        break;
    case 'cursos':
        echo "<h1>Mira todos nuestros cursos!</h1>";
        break;
    default:
        echo "<h1>Upps! no se encuentra la página</h1>";
        break;
}

[Arreglos]

<?php

$miArreglo = [1, 2.0, true];

Son colecciones de valores relacionados, como pudiera ser una lista de nombres de estudiantes, una lista de compras, etc.

Listas y mapas

<?php

// Arreglo en forma de lista:
$nombres = ['Harry', 'Hermione', 'Ron'];

// Arreglo en forma de mapa:
$nombres = [
	0 => 'Harry',
	1 => 'Hermaione',
	2 => 'Ron'
];

Definir un array

<?php

// Arreglo vació
$nombres = [];
$nombres2 = array();

empty() e isset()

Éstas funciones son muy útiles para preguntar por el contenido de un arrays

empty()

<?php

$cursos = [];

// ¿ $cursos está vacío ?
empty( $cursos ); // -> true
<?php

$cursos = [];

// ¿ $cursos NO está vacío ?
!empty( $cursos ); // -> false

Determina si una variable está vacía

isset()

<?php

//            [0]
$cursos = ['Curso de PHP'];

// ¿ $existe el índice 1 ?
isset( $cursos[1] ); // -> false

Determina si una variable está definida y no es NULL

NULL

Es un valor especial y representa una variable sin valor.

Una variable es considerada null si:

  • se le ha asignado la constante NULL.

  • no se le ha asignado un valor todavía.

  • se ha destruido con unset().

//            [0]          [1]
$cursos = ['Curso de PHP', NULL];

// ¿ $existe el índice 1 ?
isset( $cursos[1] ); // -> false

Buscando elementos


$cursos = ['Curso PHP', 'Curso HTML', 'Curso Javascript'];

in_array('Curso HTML', $cursos); // -> true;

in_array

array_search()


$cursos = ['Curso PHP', 'Curso HTML', 'Curso Javascript'];

array_search('Curso Javascript', $cursos); // -> [2];

Ordenando arrays

nombre Ordena por Mantiene asociación clasificación de orden
sort value No bajo a alto
rsort value No alto a bajo
asort value Yes bajo a alto
arsort value Yes alto a bajo
ksort key Yes bajo a alto
krsort key Yes alto a bajo

Estructuras de control repetitivas

Operadores de asignación

Asignan el resultado de una expresión a una variable.

$num = 1;

$suma = 8 + 2;

$op = (8 > 9) || (0 == '0');

Operadores de asignación

$num = 10;

$num += 5; // es lo mismo que: $num = $num + 5;
var_dump($num);

$num -= 2; // es lo mismo que: $num = $num - 2;
var_dump($num);

$num *= 4; // es lo mismo que: $num = $num * 4;
var_dump($num);

Operadores de icremento y decremento

// Operador de incremento
++

// operador de decremento
--
$a = 1;

echo $a++; // -> $a es 1
echo $a; // -> $a es 2
$a = 1;

echo ++$a; // -> $a es 2
echo $a; // -> $a es 2

Bucles

Los bucles son constructores como if() con la diferencia de que estos nos permiten ejecutar un bloque de código tantas veces como sea necesario.

  • while
  • do-while
  • for
  • foreach

while (mientras)

// sintaxis

while ( expresion ) {
	
    // Cuerpo del bucle...
    // códio que se ejcutará repetidamente.
}

Ejecuta un bloque de código mientras la expresión que se evalua sea verdadera

for (por / para)

// sintaxis

for ( para; hasta; incrementa-decrementa ) {
	
    // Cuerpo del bucle...
    // códio que se ejcutará repetidamente.
}

foreach (para cada...)

// sintaxis

while ( expresion ) {
	
    // Cuerpo del bucle...
    // códio que se ejcutará repetidamente.
}

Ejecuta un bloque de código mientras la expresión que se evalua sea verdadera

Proyecto

Funciones

Bloques de código que podemos reutilizar con tan solo escribir el nombre que le asignamos a ese bloque.

// sintaxis

function miFuncion ( $param1, $param2 ) {
	
    // Cuerpo de la función...
    // código que se ejcutará cada
    // que llames a la función
}

// LLamada a la función

miFuncion( $arg1, $arg2 );

Desarrollo web con PHP

Protocolo HTTP

Protocolo de transferencia de hipertexto.

petición HTTP

Cookies

Datos que se almacenan del lado del cliente

<?php


setcookie('nombre_cookie', 'valor', fecha_de_expiracion );

Timestamp

marcas de tiempo

  • Representan el número de segundos transcurridos desde el 1 de enero de 1970.
  • ejm: 2 de Mayo del 2020 -> 1588377600
time() // -> retorna timestamp actual
time() + 30 // -> retorna timestamp actual + 30 segundos

Archivos

PHP proporciona muchas funciones para el manejo de archivos

<?php


// Lee el contenido de un archivo
file_get_contents()

// Escribe contenido en un archivo
file_put_contents()

JSON

Javascript Object Notation

En un formato ligero, fácil de aprender, por lo que es  muy popular para intercambiar datos entre sistemas por medio de API's

Proyecto

  • Crear un archivo con el menú e importarlo al resto de archivos
  • Cambiar la página de perfil de index.php a perfil.php
  • Crear un index para presentación de la página
  • Cambiar array de cursos a json
  • convertir json de cursos a un array

Cómo continuar tu aprendizaje

  • Agrega nuevas páginas al proyecto
    • página index de presentación
    • página para ver el detalle de cursos
  • Agrega nuevas funcionalidades
    • funcionalidad para eliminar cursos
    • funcionalidad logout
      • funcionalidad borrar datos
    • Funcionalidad para impedir que se inscriban a cursos a los que ya están inscritos

Cómo continuar tu aprendizaje

  • Crea una nueva página web
  • Aprende algoritmos y estructura de datos
  • Aprende Programación orientada a objetos
  • Aprende base de datos
  • Aprende PDO (PHP para bases de datos)
  • Aprende un frameworks: Laravel

Muchas gracias

Muchas gracias

Subtitle

Curso Profesional PHP - AzulSchool

By Carlos Hernández

Curso Profesional PHP - AzulSchool

  • 214