DESARROLLO WEB
CON LARAVEL
FRAMEWORK
ROADMAP
CLASE 1 CLASE 2 CLASE 3-4
FUNDAMENTOS Laravel Proyecto
INICIALES Mini-Blog
Herramienta
• EDITOR DE CÓDIGO
VISUAL STUDIO CODE
VISUAL STUDIO CODE
1. INSTALACIÓN
• https://code.visualstudio.com/
2. INTEGRANDO EXTENSIONES
• BEAUTIFY
• LARAVEL 5 SNIPPETS
• LARAVEL BLADE SNIPPETS
• PHP DOCBLOCKER
• PHP INTELLISENSE
• MATERIAL ICON THEME
• SUBLIME MATERIAL THEME
XAMP
Es un paquete de instalación independiente de plataforma,
software libre, que consiste principalmente en el sistema
de gestión de bases de datos MySQL, el servidor web
Apache y los intérpretes para lenguajes de script: PHP y
Perl.
XAMP
1. INSTALACIÓN
2. ACTIVAR SERVIDOR
XAMP
• localhost
XAMP
DISCO LOCAL XAMPP HTDOCS
XAMP
• CREAR CARPETA CON EL NOMBRE DE CLASE1
CLASE1
CLASE 1
FUNDAMENTOS
INICIALES
FUNDAMENTOS INICIALES
PROGRAMACIÓN ORIENTADA A OBJETO (POO) CON PHP
1. CLASES Y OBJETOS
2. MÉTODOS YATRIBUTOS
3. CONSTRUCTORES
4. MODIFICADORES
5. HERENCIA
6. STATIC
7. MÉTODOS ABSTRACTOS
8. INTERFACES
9. TRAITS
10. NAMESPACE
COMPOSER
COMPOSER
¿QUÉ ES COMPOSER?
ES UN ADMINISTRADOR DE DEPENDENCIA, PARA LA
PROGRAMACIÓN EN PHP. ESO QUIERE DECIR QUE
NOS PERMITE GESTIONAR (DECLARAR, DESCARGAR
Y MANTENER ACTUALIZADOS) LOS PAQUETES DE
SOFTWARE EN LOS QUE SE BASA NUESTRO
PROYECTO PHP.
COMPOSER
INSTALACIÓN
• WEBSITE => https://getcomposer.org/
COMPOSER
INSTALACIÓN
• CLICK COMPOSER-SETUP.EXE
COMPOSER
INSTALACIÓN
• INDICAR LA RUTA DE NUESTRO PHP.EXE
COMPOSER
INSTALACIÓN
• VERIFICAR LA INSTALACIÓN DE COMPOSER
• ABRIR VSCODE
• B.MENU + VIEW + OUTPUT || (CTRL + SHIFT + U)
• TECLEAR COMPOSER EN EL TERMINAL
COMPOSER
PROGRAMACIÓN ORIENTADA A
OBJETO
CLASES Y OBJETOS
PROGRAMACIÓN ORIENTADA A
OBJETO
¿QUÉ ES?
ES UNA FORMA ESPECIAL DE PROGRAMAR,
UN PARADIGMA DE ALTAMENTE RECOMENDADO,
CON EL CUAL PUEDES ESCRIBIR CÓDIGO MUCHO
MAS ORDENADO Y CREAR APLICACIONES MÁS
FÁCILES DE MANTENER.
POO
OBJETOS
POO
OBJETOS
«ES UN MÁQUINA DE
SOFTWARE QUE CONTIENE
DATOS Y EXPONE
OPERACIONES»
POO
OBJETOS
«SE DEFINE COMO UNA CLASE
QUE CONTIENE ATRIBUTOS Y
MÉTODOS, PUEDE HEREDAR
DATOS DE OTRAS Y TAMBIEN
PUEDE DEFINIR ALGUNOS
MÉTODOS ESPECIALES»
POO
OBJETOS
ATRIBUTOS MÉTODOS
• COLOR • ARRANCA()
• VELOCIDAD • FRENA()
• MOTOR • GIRAR()
• MODELO
POO
CLASES
POO
CLASES
Podríamos definir a una clase como una
plantilla o molde desde donde es posible generar
objetos(instancias). La estructura de una clase
contiene dos elementos básicos:
atributos(variables) y métodos(funciones).
CLASES Y OBJETOS
PROGRAMAR
• CREAR UN ARCHIVO INDEX.PHP
• DEFINIR UNA CLASE
NOMBRE DE
PALABRA LA CLASE
RESERVADA
CLASS
CLASES Y OBJETOS
PROGRAMAR
• DEFINIR ATRIBUTOS Y MÉTODOS
CLASES Y OBJETOS
PROGRAMAR
• INSTANCIAR UN OBJETO DE LA CLASE AUTO
• ACCEDER A LOS ATRIBUTOS Y METODOS
CLASES Y OBJETOS
INSTANCIAR UN OBJETO
ATRIBUTOS Y MÉTODOS
ATRIBUTOS
• Son Variables
• Definir Tipos de Atributo(Public, Private, Protected)
ATRIBUTOS Y MÉTODOS
Atributos
• Acceder a los Atributos con $this->nombreAtributo
ESTE PROCESO SE REALIZA
DENTRO DE LA CLASE
ATRIBUTOS Y MÉTODOS
Métodos
• Acceder a otro Métodos con $this->nombreFunction o
self::nombreFunction
CÓDIGO
ESTE PROCESO SE REALIZA
DENTRO DE LA CLASE
ATRIBUTOS Y MÉTODOS
Programar
PONER EN FUNCIONAMIENTO NUESTRO NUEVO MÉTODO
MOSTRARMOTOR()
CÓDIGO
CONSTRUCTOR
¿QUÉ ES?
ES UN MÉTODO MÁGICO DE PHP QUE
AL INSTANCIAR UNA CLASE ESTE
MÉTODO SE EJECUTA AL COMIENZO
DE MANERA AUTOMÁTICA .
CADA VEZ QUE SE CREA UNA
INSTANCIA DE UNA CLASE, SE
EJECUTA ESTE MÉTODO DE
CONSTRUCTOR.
CONSTRUCTOR
CREAR UN MÉTODO CONSTRUCTOR
CÓDIGO
CONSTRUCTOR
NORMAS
EL MÉTODO CONSTRUCTOR TIENE
QUE SER DE TIPO PUBLIC Y NO PUEDE
RETORNAR NADA.
CONSTRUCTOR
PRUEBAS
CÓDIGO
MODIFICADORES
MODIFICADORES DE ACCESO
« PUBLIC / PRIVATE / PROTECTED »
SE INCORPORA EL USO DE MODIFICADORES DE
ACCESO « PUBLIC / PRIVATE / PROTECTED »
PARA ATRIBUTOS Y MÉTODOS.
MODIFICADORES
TIPO PUBLIC
ESTA PROPIEDAD
ES MUY SIMPLE, SE
PUEDE REALIZAR
DE TODO CON EL
ATRIBUTO O EL
MÉTODO
MODIFICADORES
TIPO PRIVATE
HACE QUE LOS
ATRIBUTOS Y
MÉTODOS SE
PUEDA UTILIZAR
DESDE LA MISMA
CLASE QUE LAS
DEFINE.
MODIFICADORES
TIPO PROTECTED
HACE QUE LOS
ATRIBUTOS Y MÉTODOS
SE PUEDA ACCEDER
DESDE LA CLASE QUE
LAS DEFINE Y TAMBIÉN
DESDE CUALQUIER
OTRA CLASE QUE
HEREDE DE ELLA.
MODIFICADORES
EJERCICIO:
• CREAR UNA CLASE CON EL NOMBRE DE
USUARIO CON LAS SIGUIENTES DATOS…
1
MODIFICADORES
2
MODIFICADORES
3
MODIFICADORES
PRUEBAS
4
MODIFICADORES
5
HERENCIA
¿QUÉ ES?
UN CONCEPTO IMPORTANTE EN LA
ORIENTACIÓN A OBJETOS ES EL DE
HERENCIA: CUANDO UNA CLASE DERIVA DE
OTRA AUTOMÁTICAMENTE HEREDA SUS
ATRIBUTOS Y MÉTODOS.
HERENCIA
EN PHP, A DIFERENCIA DE OTROS
LENGUAJES ORIENTADOS A OBJETOS(C++),
UNA CLASE SÓLO PUEDE DERIVAR DE UNA
ÚNICA CLASE, ES DECIR, PHP NO PERMITE
HERENCIA MÚLTIPLE
HERENCIA
EJERCICIO:
• Crear la clase Papa con la siguiente características:
HERENCIA
EJERCICIO:
• Crear la clase Hijo con la siguiente características:
PARA HEREDAR LOS ATRIBUTOS Y MÉTODOS DE OTRA CLASE
SE DEBE UTILIZAR LA PALABRA RESERVADA EXTENDS.
HERENCIA
PRUEBA
CÓDIGO
HERENCIA
EJERCICIO:
• Crear un método llamado miCarroAmarillo() en la
clase Papa de tipo private(Privado) con la siguiente
características:
HERENCIA
PRUEBA
NO PUEDO HEREDAR ATRIBUTOS Y MÉTODOS DE TIPO PRIVADO
HERENCIA
EJERCICIO:
• Crear un método llamado miCarroAmarillo() en la
clase Papa de tipo protected(Protegido) con la
siguiente características:
HERENCIA
PRUEBA
NO PUEDO USAR ATRIBUTOS Y MÉTODOS DE TIPO PROTECTED
A TRAVÉS DE OBJETO
HERENCIA
PRUEBA
NO PUEDO USAR ATRIBUTOS Y MÉTODOS DE TIPO PROTECTED
A TRAVÉS DE OBJETO
HERENCIA
ENTONCES…
SI NO PUEDO A TRAVES DE OBJETOS…
Y DENTRO DE UNA CLASE PUEDO HEREDAR?
HERENCIA
EJERCICIO:
• Crear un método llamado miCarroAzul() en la clase
Hijo con la siguiente característica:
HERENCIA
PRUEBA
STATIC
MÉTODOS Y ATRIBUTOS ESTÁTICOS
UN MÉTODO ESTÁTICO PERTENCE A LA CLASE PERO NO
PUEDE ACCEDER A LOS ATRIBUTOS DE UNA INSTANCIA. LA
CARACTERÍSTICA FUNDAMENTAL ES QUE UN MÉTODO
ESTÁTICO SE PUEDE LLAMAR SI TENER QUE CREAR UN
OBJETO DE DICHA CLASE.
UNA PROPIEDAD DECLARADA COMO STATIC NO PUEDE SER
ACCEDIDA CON UN OBJETO DE CLASE INSTACIADO(AUNQUE
UN MÉTODO ESTÁTICO SÍ LO PUEDE HACER)
STATIC
MÉTODOS Y ATRIBUTOS ESTÁTICOS
• UN MÉTODO ESTÁTICO NO PUEDE ACCEDER A LOS
ATRIBUTOS DE LA CLASE.
• PARA CREAR SE NECESITA EL NOMBRE DE LA CLASE
SEGUIDO DEL OPERADOR ‘ :: ’ Y POR ÚLTIMO EL NOMBRE
DEL MÉTODO ESTÁTICO A LLAMAR.
• LAS PROPIEDADES ESTÁTICAS NO PUEDEN SER
ACCEDIDAS A TRAVÉS DEL OBJETO UTILIZANDO EL
OPERADOR FLECHA ‘ -> ’.
STATIC
EJERCICIOS:
• CREAR UNA CLASE PERSONA CON LOS SIGUIENTES
DATOS:
1
STATIC
2
STATIC
PRUEBAS
3
INTERFACES
LAS INTERFACES DE OBJETOS PERMITEN CREAR
CÓDIGO CON EL CUAL ESPECIFICAMOS QUÉ
MÉTODOS DEBEN SER IMPLEMENTADOS POR UNA
CLASE.
PARA CREAR UNA INTERFACE DEBEMOS COLOCAR
LA PALABRE RESERVADA ‘’interface’’, DE LA MISMA
FORMA QUE CON UNA CLASE ESTÁNDAR.
TODOS LOS MÉTODOS DECLARADOS EN UNA
INTERFAZ DEBEN SER PÚBLICOS.
INTERFACES
CUANDO UNA CLASE IMPLEMENTA UNA INTERFAZ,
PODREMOS ESTAR SEGUROS QUE EN SU CÓDIGO
ESTÁN DEFINIDAS LAS FUNCIONES QUE INCLUÍA ESA
INTERFAZ.
CÓDIGO PARA DEFINIR UNA INTEFAZ
LOS MÉTODOS NO SE DEBEN CODIFICAR, SINO
ÚNICAMENTE DECLARARSE.
INTERFACES
IMPLEMENTACIÓN DE INTERFACES
AHORA VAMOS A IMPLEMENTAR UNA INTERFAZ EN
UNA CLASE.
INTERFACES
PARA IMPLEMENTAR UNA INTERFAZ, EN LA
DECLARACIÓN DE LA CLASE, SE DEBE UTILIZAR LA
PALABRA IMPLEMENTS, SEGUIDA DEL NOMBRE DE LA
INTERFAZ QUE SE VA A IMPLEMENTAR. SE PODRÍAN
IMPLEMENTAR VARIAS INTERFACES EN LA MISMA
CLASE, EN CUYO CASO SE INDICARÍAN TODOS LOS
NOMBRES DE LAS INTERFACES SEPARADAS POR
COMAS.
INTERFACES
RESUMEN
• LAS INTERFACES AYUDA A QUE TU CÓDIGO SEA
MÁS SOLIDO.
• ES MAQUETAR LAS CLASES
• UNA INTERFACE SIRVE PARA DECIRTE ALGO QUE
TIENES QUE HACER MAS NO COMO DEBES
HACERLO.
CLASES Y MÉTODOS ABSTRACTOS
LAS CLASES DEFINIDAS COMO ABSTRACTAS NO SE PUEDEN
INSTANCIAR Y CUALQUIER CLASE QUE CONTIENE AL MENOS UN
MÉTODO ABSTRACTO DEBE SER DEFINIDA COMO TAL. LOS
MÉTODOS DEFINIDOS COMO ABSTRACTOS SIMPLEMENTE
DECLARAN LA FIRMA DEL MÉTODO, PERO NO PUEDEN DEFINIR
LA IMPLEMENTACIÓN.
SU INTENCIÓN ES DEFINIR UNA ESTRUCTURA (PLANTILLA), QUE
PUEDE ESTAR PARCIALMENTE IMPLEMENTADA, PARA
CUALQUIER CLASE QUE QUIERA EXTENDERLA. PUEDE
IMPLEMENTEAR CIERTAS FUNCIONALIDADES Y DEJAR QUE SUS
HEREDERAS TERMINEN DE IMPLEMENTEARLA.
CLASES Y MÉTODOS ABSTRACTOS
LAS CLASES DEFINIDAS COMO ABSTRACTAS NO SE PUEDEN
INSTANCIAR Y CUALQUIER CLASE QUE CONTIENE AL MENOS UN
MÉTODO ABSTRACTO DEBE SER DEFINIDA COMO TAL. LOS
MÉTODOS DEFINIDOS COMO ABSTRACTOS SIMPLEMENTE
DECLARAN LA FIRMA DEL MÉTODO, PERO NO PUEDEN DEFINIR
LA IMPLEMENTACIÓN.
SU INTENCIÓN ES DEFINIR UNA ESTRUCTURA (PLANTILLA), QUE
PUEDE ESTAR PARCIALMENTE IMPLEMENTADA, PARA
CUALQUIER CLASE QUE QUIERA EXTENDERLA. PUEDE
IMPLEMENTEAR CIERTAS FUNCIONALIDADES Y DEJAR QUE SUS
HEREDERAS TERMINEN DE IMPLEMENTEARLA.
CLASES Y MÉTODOS ABSTRACTOS
PARA CREAR UNA CLASE ABSTRACTA DEBEMOS USAR LA
PALABRA CLAVE abstract:
CLASES Y MÉTODOS ABSTRACTOS
UNA CLASE ABSTRACTA DEBE CONTENER COMO MÍNIMO UN
MÉTODO ABSTRACTO. LOS MÉTODOS ABSTRACTOS NO TIENEN
IMPLEMENTACIÓN, SINO QUE DEFINEN UNA FUNCIONALIDAD
QUE SERÁ IMPLEMENTADA OBLIGATORIAMENTE EN LAS
CLASES HEREDERAS.
CLASES Y MÉTODOS ABSTRACTOS
CREAMOS UNA CLASE GATO QUE HEREDA DE LA CLASE
ABSTRACTAS ANIMAL.
LA CLASE QUE HEREDERA ESTARÁ
OBLIGADA A IMPLEMENTAR LOS
MÉTODOS ABSTRACTOS.
CLASES Y MÉTODOS ABSTRACTOS
PROBAR CÓDIGO
CARACTERÍSTICAS PRINCIPALES DE LAS CLASES ABSTRACTAS
• Como ya hemos comentado una clase abstracta no puede
instanciarse. Pero si que se puede instanciar una clase hija no
abstracta.
• Una clase abstracta debe de contar como mínimo con un método
abstracto.
• Una clase abstracta A puede ser extendida por una clase abstracta
B. Y esta última puede implementar o no los métodos abstractos de
su antecesora A. Si no fuera abstracta si que estaría obligada a
implementar los métodos.
TRAITS
• SON UN MECANISMO DE REUTILIZACIÓN DE CÓDIGO EN
LENGUAJES DE HERENCIA SIMPLE, COMO PHP. EL OBJETIVO
DE UN TRAITS ES EL DE REDUCIR LAS LIMITACIONES PROPIAS
DE LA HERENCIA SIMPLE PERMITIENDO QUE LOS
DESARROLLADORES REUTILICEN A VOLUNTAD CONJUNTOS
DE MÉTODOS SOBRE VARIAS CLASES INDEPENDIENTES Y
PERTENECIENTES A CLASES JERÁRQUICAS DISTINTAS.
• UN TRAIT ES SIMILAR A UNA CLASE, PERO CON EL ÚNICO
OBJETIVO DE AGRUPAR FUNCIONALIDADES MUY
ESPECÍFICAS Y DE UNA MANERA COHERENTE. NO SE PUEDE
INSTANCIAR DIRECTAMENTE UN TRAIT. ES POR TANTO UN
AÑADIDO A LA HERENCIA TRADICIONAL
TRAITS
PARA CREAR UN TRAIT DEBEMOS USAR LA PALABRA CLAVE trait:
TRAITS
¿QUÉ PUEDE CONTENER UN TRAIT?
TRAITS
USANDO TRAIT
TRAITS
PROBAR CÓDIGO
COMPOSER
¿QUÉ ES COMPOSER?
ES UN ADMINISTRADOR DE DEPENDENCIA, PARA LA
PROGRAMACIÓN EN PHP. ESO QUIERE DECIR QUE
NOS PERMITE GESTIONAR (DECLARAR, DESCARGAR
Y MANTENER ACTUALIZADOS) LOS PAQUETES DE
SOFTWARE EN LOS QUE SE BASA NUESTRO
PROYECTO PHP.
COMPOSER
EJERCICIO
1. CREAR UNA CARPETA EN HTDOCS CON EL NOMBRE DE
composer.
2. ABRIR CARPETA composer CON NUESTRO EDITOR VSCODE.
3. CREAR UN DOCUMENTO PHP CON EL NOMBRE DE index.php
DENTRO DE LA CARPETA DE composer
COMANDOS DE COMPOSER
• composer init
• composer require vendor nombrePaquete
• composer install
• composer update [vendor/paquete]
COMPOSER
EJERCICIO
1. CREAR UNA CARPETA EN HTDOCS CON EL NOMBRE DE
composer.
2. ABRIR CARPETA composer CON NUESTRO EDITOR VSCODE.
3. CREAR UN DOCUMENTO PHP CON EL NOMBRE DE index.php
DENTRO DE LA CARPETA DE composer
COMANDOS DE COMPOSER
• composer init
• composer require vendor nombrePaquete
• composer install
• composer update [vendor/paquete]
COMPOSER
EJERCICIO
• ABRIR CONSOLA DE WINDOW
• COLOCAR EN LA CONSOLA DE WINDOW EL SIGUIENTE:
cd C:\xampp\htdocs\composer
composer init
Nombre del Paquete: programate/ejercicio
Descripción: Clase de POO con Composer
Presionar el botón de [enter]
Presionar el botón de [enter]
Tipo de Paquete: project
Licencia: MIT
Instalar algunas dependencias: NO
Instalar algunas dependencias de desarrollo: NO
Confirmar: YES
COMPOSER
SINTAXIS DE COMPOSER JSON
COMPOSER
CONFIGURACIÓN DE COMPOSER JSON
COLOCAR EN LA
CONSOLA:
composer install
COMPOSER
INFORMACIÓN
• AUTOLOAD NOS PERMITE USAR CLASES DE PHP SIN
NECESIDAD DE REQUIRE() O INCLUDE().
• EL AUTOLOAD DEL COMPOSER FUNCIONAR DE DOS MANERAS:
EL ESTANDAR PSR-4
CLASSMAP
PSR-4 = REQUIERE DE UNA ESTRICTA ESTRUCTURA DE
SISTEMA DE ARCHIVOS BASADAS EN NAMESPACES.
CLASSMAP = NO REQUIERE QUE TENGAS CASI NINGÚN
ARCHIVO O ESTRUCTURA DE DIRECTORIOS DETERMINADOS.
COMPOSER
EJERCICIO
• CREAR UNA CARPETA LLAMADA app.
• CREAR DOS CLASES LLAMADA ANIMAL Y EL OTRO PERRO
DENTRO DE LA CARPETA app.
COMPOSER
EJERCICIO
• CREAR UNA CARPETA LLAMADA app.
• CREAR DOS CLASES LLAMADA ANIMAL Y EL OTRO PERRO
DENTRO DE LA CARPETA app.
COMPOSER
EJERCICIO
EN EL ARCHIVO DE INDEX.PHP COLOCAR EL SIGUIENTE CÓDIGO:
require_once 'vendor/autoload.php';
ESTA LÍNEA DE CÓDIGO NOS PERMITE ACTIVAR EL CARGADOR
AUTOMÁTICO INTEGRADO DE COMPOSER.
NAMESPACE
• LOS NAMESPACE SON UNA DE LAS
UTILIDADES QUE HAN APARECIDO EN PHP 5,
EN LA VERSIÓN PHP 5.3.
• NOS AYUDAN A COLOCAR SUB-NOMBRES A
NUESTRO ARCHIVOS, CLASES O FUNCIONES.
• SIRVEN PARA ORGANIZAR EL CÓDIGO, DE
MANERA QUE LOS NOMBRES QUE NOSOTROS
RESERVEMOS A LA HORA DE CREAR CLASES
O FUNCIONES NO ENTREN EN CONFLICTO
CON LOS QUE HAYAN PODIDO, O PUEDAN EN
EL FUTURO, CREAR OTRAS PERSONAS.
NAMESPACE
¿CÓMO DECLARAR UN NAMESPACE PHP?
INDICAS EL NAMESPACE DE ESTA MANERA:
A partir de esa línea puedes escribir
cualquier tipo de código, donde cada
uno de los elementos declarados se
quedarán en el NAMESPACE definido
NAMESPACE
DECLARAMOS UN NAMESPACE A LA CLASE
PERRO
NAMESPACE
DECLARAR EL USO DE UN MIEMBRO DEL
NAMESPACE
ARCHIVO INDEX.PHP
COMPOSER
INSTALAR UN PAQUETE EN COMPOSER
• VAMOS A INSTALAR EL PAQUETE CARBON
http://carbon.nesbot.com/
COMPOSER
INSTALAR UN PAQUETE EN COMPOSER
• VAMOS A NUESTRA CONSOLA Y COLOCAMOS LO SIGUIENTE:
composer require nesbot/carbon
INSTALANDO EL PAQUETE DE CARBON…
COMPOSER
NUESTRO ARCHIVO COMPOSER JSON
COMPOSER
UTILIZAR NUESTRO PAQUETE
Namespace + clase
Carbon
Llamo la Clase Carbon +
una Function now()
format() es una de function que
da formato a nuestra fecha
FIN DE LA CLASE