Programacion web con Laravel framework Clase 1.pdf

DESARROLLO WEB CON LARAVEL FRAMEWORK ROADMAP CLASE 1 CLASE 2 CLASE 3-4 FUNDAMENTOS INICIALES Laravel Proyecto Min

Views 72 Downloads 0 File size 5MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

DESARROLLO WEB CON LARAVEL FRAMEWORK

ROADMAP CLASE 1

CLASE 2

CLASE 3-4

FUNDAMENTOS INICIALES

Laravel

Proyecto 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. 2. 3. 4. 5. 6. 7. 8. 9. 10.

CLASES Y OBJETOS MÉTODOS YATRIBUTOS CONSTRUCTORES MODIFICADORES HERENCIA STATIC MÉTODOS ABSTRACTOS INTERFACES TRAITS 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 • COLOR • VELOCIDAD • MOTOR • MODELO

MÉTODOS • ARRANCA() • FRENA() • GIRAR()

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

PALABRA RESERVADA CLASS

NOMBRE DE LA CLASE

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 INTERFAZ DEBEN SER PÚBLICOS.

EN

UNA

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