No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
17 Hrs
22 Min
57 Seg
Curso de PHP con Composer

Curso de PHP con Composer

Profesor Italo Morales F

Profesor Italo Morales F

Revisión del proyecto

11/19
Recursos

Aportes 89

Preguntas 31

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Aunque llevo unos años trabajando con php nunca había entrado en profundidad en composer. Me están gustando mucho estas clases y estoy aprendiendo un montón 😁

Realmente Composer si facilita (Y profesionaliza) mucho la carga de archivos en PHP, pero, cuand trabajas con muchas dependencias mediante Composer, es posible que existan 2 funciones iguales que lleven el mismo nombre, y eso puede causar un Fatal Error en PHP, es por eso que siempre se suele encerrar dentro de un if ( ! function_exists() ), de esa forma no duplicamos las funciones y nos evitamos un error.

Si no quieren abrir un navegador. Pueden hacerlo desde la consola y visualizar los resultados de igual manera.

php <nombreArchivo>.php

Breve resumen de la primera explicacion:

Aunque no tengo problema con el contenido de la clase, desde mi humilde opinión y punto de vista, creo que es algo ligeramente avanzado para un curso de Fundamentos de PHP.
Pero todo está muy bien explicado de igual forma.

"de esta manera entendemos el ciclo profesional" y yo como de 👁️👄👁️

La neta que no entiendo pero al menos estoy en el lugar correcto

Veo que muchos tuvieron mi mismo problema así que comparto el como logré solucionarlo.

Si al momento de querer correr el código en el navegador te sale este mensaje de error u otro similar al invocar la función:

Algo que me funcionó a mi fue poner el “Text” de la clase y del helpers con la t en minúscula (text).

Format.php

helpers.php

El Text del json no es necesario cambiarlo.

composer.json

Prueben a ver si así les funciona.

  • Format.php → Funciones (Funcionalidades)
  • helpers.php → Ayudas de reescritura de funciones
  • composer.json → Configuración de carga
  • index.php → Programa principal
  • vendor → *Se crea automáticamente con composer dump

✨ Manejar composer te permite trabajar de forma profesional tus aplicaciones.

Creo que no fue muy claro como llego a tener instalado el composer en un proyecto… dejo por acá este video que me ayudo mucho: https://www.youtube.com/watch?v=jsK_JmSJvYw

Llevo un año como desarrollador de wordpress y ahora por fin entiendo algunas configuraciones de temas realizados por la comunidad, además de que me va a dar la apertura de trabajar con LARAVEL y entender porque funcionan sus REQUIRE, que emocionante 😄

Había trabajado con PHP (5.6) pero como bien creía, lo estaba haciendo de forma muy rústica, gracias a este curso estoy refrescando cosas y aprendiendo nuevas. Muchas gracias.

Mi cerebro en estos momentos: 🧠❓

Leyendo los demas aportes me doy cuenta que no soy el unico, es necesario ver dos veces el video para lograr entenderlo, el curso marcha bien, es solo nosotros aprendiendo algo nuevo, asi que animo chicos, invertir tiempo en estas cosas dan sus frutos al final y la satisfaccion de entender una tecnologia desconocida no tiene precio 😃

Me canse de buscar una solucion para el siguiente error que varios alumnos tenemos:

Fatal error: Uncaught Error: Call to undefined function lower() in C:\xampp\xampp8\htdocs\platzi\composer\index.php:5 Stack trace: #0 {main} thrown in C:\xampp\xampp8\htdocs\platzi\composer\index.php on line 5

Me queda duda, ¿Qué dice exactamente la validación ! function_exists?

En esta clase (y la anterior) he aprendido más que en todos los vídeos de composer que ví en youtube.

Durante mucho tiempo estuve viendo con mala cara aquellos developers que encerraban sus métodos entre condicionales ahora entiendo que el que estaba equivocado era yo. Gracias Italo

esta mi primera clalse de programacion y aunnque es muy basica no entiendo, no puedo comprender que significan los codigos , los comandos, los simbolos, meparece todo muy abstracto la sintais en general no pueo interpretar cuales son las ordenes de la lineas de codigo al idioma humano… alguien tiene una sugerencia, para poder comprendelo, soy perseverante y capaz, pero en este caso necesito entender el contexto , para poder interpretar las lineas de codigo

Cuando dicen que PHP es código espaguetti es principalemente por malas prácticas, como lo explica el profesor es excelente.

Explicación a profundidad de composer

Excelente!

Muy buena explicacion de composer

No me imprime nada
pueden descargar los archivos en este link github <https://github.com/wilgusper/Backend_with_php_platzi-.git>
El archivo `composer.json` contiene información de configuración para el administrador de dependencias Composer en un proyecto PHP. ```json { "name": "italomoralesf/text", "autoload": { "psr-4": { "Text\\\\\\\\": "src/" }, "files": \[ "src/helpers.php" ] } } ``` Aquí está una explicación de las partes clave de este archivo: 1. `"name": "italomoralesf/text"`: Define el nombre del paquete o proyecto. En este caso, el nombre del paquete es "italomoralesf/text". El nombre del paquete se utiliza para identificarlo y, en combinación con el nombre del autor, crea un identificador único. 2. `"autoload"`: Esta sección define cómo Composer debe cargar automáticamente las clases y archivos en el proyecto. En este caso, hay dos partes específicas en la sección "autoload": * `"psr-4"`: Este mapeo define el estándar PSR-4 para la carga automática de clases. Indica que las clases del espacio de nombres "Text" deben buscarse en "`src/`". Por ejemplo, si tienes una clase llamada "Text\Format" en "`src/Format.php`", Composer la cargará automáticamente cuando la necesites. * `"files"`: Esta parte define un archivo que debe ser cargado automáticamente. En este caso, se incluye "`src/helpers.php`", lo que significa que el archivo `helpers.php` se carga automáticamente cuando utilizas Composer. En resumen, este archivo `composer.json` es la configuración para un paquete llamado "`italomoralesf/text`". Define cómo las clases y archivos en el espacio de nombres "Text" deben cargarse automáticamente utilizando el estándar PSR-4, y también especifica que el archivo `helpers.php` debe cargarse automáticamente. Esto es útil para garantizar que las dependencias y utilidades necesarias estén disponibles en tu proyecto. 💡 Ahora, hay que ejecutar el siguiente comando para que composer haga su trabajo. ```bash composer dump ``` De modo que en `src/Format.php`, podríamos tener el siguiente código: ```php \'; echo lower('HOLA MUNDO'); ```
Bien fumado, pero finalmente entendí esta clase. Retiro lo dicho en un comentario anterior, este curso sí tiene un nivel de dificultad mayor que el curso de integración de PHP con HTML, jaja

Revisión del proyecto

archivo index.php

  1. Carga el sistema de autoload.php de composer con require
  2. llama a una función, en este caso lower(), que está configurada en src/helpers.php

archivo src/helpers.php

  1. Se reescriben todas las diferentes funciones
  2. Antes de configurar una función (método), se usa la condicional if ( ! function_exists() ), de esa forma no duplicamos las funciones y nos evitamos un error.
  3. helper a su vez, llama a la clase Format que está definida en Format.php
  4. helper al no saber que la clase Format es su archivo hermano, hace uso del namespace Text, como está configurado en el archivo composer.json

archivo composer.json

“psr-4”: {
“Text\”: “src/”,
“OtroNameSpace\”: “src/”
},

El “psr-4” es un estándar que básicamente maneja los namespaces de un código haciendo alusión a la ruta en la que se encuentran


archivo src/Format.php

  1. Aquí está definida la clase Format , y dentro están todos sus métodos, en este proyecto está el método upperText() convierte un string a mayúsculas y lowerText() convierte a minúsculas, así de simple sólo para fines prácticos

volviendo al archivo index.php

  1. Desde aquí, no quiero utilizar el método directamente de la clase Format, quiero utilizar la función, y esta se encuentra en helpers.php
  2. En este proyecto, el método en la clase Format se llama lowerText() y la función en helpers.php se llama lower()

<h5>Todo componente tiene este ciclo de vida.</h5> <h5>Todo proyecto vive dentro de la carpeta src , y esta se carga a lo largo del sistema gracias a la configuración del composer.json</h5>

<h5>Definiciones que brindó otro compañero</h5>
  • Format.php → Funciones (Funcionalidades)
  • helpers.php → Ayudas de reescritura de funciones
  • composer.json → Configuración de carga
  • index.php → Programa principal
  • vendor → *Se crea automáticamente con composer dump

La función strtoupper() no trabaja con caracteres especiales (Las letras con tíldes no se van a transformar). Para corregir esto se puede usar en cambio la función mb_strtoupper($value, 'utf-8').
En caso de errores, puede ser porque no se tiene la extensión instalada. Puede corregirlo habilitando la extensión, y reiniciando Apache y tu servidor PHP. En caso de no funcionar, verifica que este habilitado en tu archivo php.ini

# Desde Ubuntu, puedes copiar esto en la terminal (Verifica que tus versiones de php y apache sean las mismas, o modifica la ruta con tus versiones)
sudo nano /etc/php/8.2/apache2/php.ini

Los cursos de Platzi suelen tener un buen nivel y ser de buena calidad, lamentablemente este está un poco entreverado. Si previamente tenes experiencia trabajando con PHP este curso es excelente, porque muchos conceptos que tal vez no tenias claro logras comprenderlos con mayor profundad. Ahora si venias haciendo la ruta de “Desarrollador backend de PHP” este curso está mal ubicado, el docente Italo usa conceptos de orientación a objetos que aún no se han visto en la ruta que propone Platzi. Sugiero que antes de agregar este curso recomienden realizar un pequeño curso de introducción a POO y luego seguir con este de Composer para entender mejor el curso 😃, espero mi aporte ayude a mejorar la gran calidad de los cursos de Platzi 😃.

Buenass alguien que me ayude a visualizarlo en la pagina de internet, no he podido. hay algo que estoy haciendo mal?

Me gusta mucho como el profesor explica paso a paso el workflow de la aplicacion.
.
el index.php (edsde donde empezo la explicacion) es lo que conocemos como entry-point o punto de entrada.
.
Y cuando hacemos depuracion (debugging) es por donde debemos empezar a ver y entender el dodigo (en proyectos legados -legacy- sobre todo, que alguien mas hizo ).

Creo que ya debes de tener un buen rato desarrollando en php y POO para poder tomar este curso. Tomare los demas cursos de POO para despues complentar con esto aun así para la descarga de dependencias basta con guiarse de la documentacion de la misma

tenía el mal habito de solo ver los curso como este e intentar entenderlos solo viendo (sin practicar lo que estaba viendo ), pero vaya que es un habito demasiado malo, cuando empiezas a practicar es mas facil que se te queden las cosas grabadas en tu cabeza.

esto es un ejemplos sencillo para entender que es y como funciona composer? hablar de helpers clases namespaces json tener un ejemplo con varios archivos eso es algo simple para entender composer?

vistas, de por dios, saltamos de composer a vistas y helpers de una manera de milisegundos y se regresa al ejemplo como si nada, que desanimado me encuentro con el curso

Si quieren usar una Extensión similar a Liver Server pero en en PHP. Instalen en visual studio code PHP server.

También revisen los “Slash” para que pueda funcionar el código

si presentan este problema:
“Uncaught Error: Class “Text\Format” not found"
es el autoload. Siempre pueden reiniciarlo usando el comando
"composer dump-autoload” en la terminal

Esto me esta gustando!

Muy interesante, no conocia realmente como funciona composer tan detalladamente, excelente explicación, a seguir aprendiendo 💪

https://rimorsoft.com/blog/sistema-de-autoload-en-composer este es el pedazo que le falta al curso

Tardé dos días entendiendo lighttpd para que funcionara en mi PC 😂. Pero aquí estamos de vuelta

Tambien llevaba un tiempo aprendiendo Php pero nunca produndice el tema de composer, esta interesante

Había escuchado de composer pero hasta el día de hoy entiendo la función y las ventajas que le proporciona a php como tal

Buenisimo! me despejo muchas dudas del curso anterior.

Así me quedó el helpers.php

<?php

if(! function_exists("sumar")){
    function sumar($a,$b){
        return Numeros\Operaciones::sumar($a,$b);
    }
}

if(! function_exists("restar")){
    function restar($a,$b){
        return Numeros\Operaciones::restar($a,$b);
    }
}

if(! function_exists("multiplicar")){

    function multiplicar($a,$b){
        return Numeros\Operaciones::multiplicar($a,$b);
    }
}

if(! function_exists("dividir")){
    function dividir($a,$b){
        return Numeros\Operaciones::dividir($a,$b);
    }
}

if(!function_exists("sumar")){
    function sumar($c){
        return "Hola";
    }
}

?>

Gracias profesor Italo, buen aporte, Dios lo bendiga

9. Revisión del proyecto

En helpers.php vamos a colocar el código que vamos a reutilizar.

En esta clase hemos revisado cómo funciona internamente cuando usamos composer.

Todo comienza con el INDEX que agregamos al principio de nuestro archivo.

Lo correcto para hacer nuestras funcionalidades en el helpers.php, es metiéndolos en un if.

No entiendo por que este es el primer curso de la ruta de desarrollo de backend con php. No se por donde empezar, todo me parece muy complejo.

I’m Developer PHP

|| Helpers
Es una carpeta que recibe funciones repetitivas.
Internamente pregunta al sistema si esta función no existe si la función no existe significa que hay que aplicar la función contenida en helpers.

Composer facilita el manejo de paquetes y la carga de archivos en php

Excelente clase! Ahora si me quedo claro para que es útil esta herramienta!

Me sale el siguiente error y he revisado y revisado pero no detecto el error.



Es genial aprender a usar php profesionalmente siendo que lo venia utilizando ya mas de un año de forma pura.

En la segunda parte explica como es la manera correcta de configurar el Format php:
/* (They both work the same)
THE RIGHT WAY TO SET IT UP:
// El if dice: Si esa función no existe para que php la cree.
// Pero sí, si existe, no lo recargará, pues composer los carga por si solo.
if ( ! functions exists (‘upper’)) {
// code…
function upperText($value)
{
return strtoupper($value);
}
}
// “Se puede hacer manualmente pero aprovechamos esta tecnologia para hacer
un sistema de carga automatica.”
*/

Convierte texto:
strtoupper: Mayuscula.
strtolower: Minuscula.

hola, mi primera vez con composer fue a través de laravel. este es un enfoque totalmente diferente al que venia manejando. excelente.

Si alguien no sabe que es composer…

compser es un sistema de gestión de paquetes.

https://es.wikipedia.org/wiki/Sistema_de_gestión_de_paquetes

Con esta clase he podido comprender la anterior 🤣

La clase anterior y esta clase me están ayudando, no del todo pero voy entendiendo como funciona php, espero que al final logre comprender como funciona y aprenda a como programar ❤️

“description”: “Enter a description for your project”,

Composer usa el modelo vista controlador?

Italo, qué grata sorpresa que seas profesor en Platzi. Durante años he seguido los videos de tu canal de Youtube y en gran medida podría decir que gracias a ello laboro en algo que me apasiona. ¡Gracias totales!

Aprendí muchísimo.

Básicamente lo que hicimos fue crear un paquete, para entender su estructura, si estoy mal por favor feedback, gracias

Excelente!

Vamo a darle con todo

Excelente explicación de Composer!

Aquí pueden revisar más a profundidad el estandar psr-4 https://www.php-fig.org/psr/psr-4 y muchos otros estándares.

Soy nuevo en desarrollo web, prácticamente estoy iniciando de cero; antes de iniciar mi aprendizaje escuchaba que en desarrollo web existe el patron “modelo vista controlador” (no sé si solo en PHP). De manera muy general lo que se hace creo que es, estructurar el código en distintas carpetas (modelos, vistas y controladores), entre las ventajas de este patron, estructura o forma de programar es que incluso daba un nivel de seguridad a la aplicación.
Este patron ¨modelo, vista, controlador¨ es es la forma antigua de programar? ¿Tiene alguna relación con Composer o son cosas diferentes? ¿Composer reemplaza esto y hace la programación mas sencilla? ¿Qué hay en cuanto a la seguridad? ¿Es necesario aprender este patron de modelo vista controlador? ¿La ruta de desarrollo web backend con PHP enseña este patron?
Espero puedan responder mis dudas por favor.

tengo este error Fatal error: Uncaught Error: Call to undefined function upper() in C:\xampp\htdocs\platzi\php 2020\index.php:7 Stack trace: #0 {main} thrown in C:\xampp\htdocs\platzi\php 2020\index.php on line 7
index

<?php   

require __DIR__. '/vendor/autoload.php';

//require __DIR__. '/src/helpers.php';

echo upper('hola');```

<autoload

<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit6a9afed5fce49ecf67e798fa80636da2::getLoader();


<helpers>

<?php
    
    function upper($value){
        
        return Text\Format::upperText($value);
    }


`<Format>

<?php
namespace Text;
class Format{
	public static function upperText($value){
		return strtoupper($value);
	}
}



comporse.json
{
	"name":"italomoralesf/text",
	"autoload":{
		"psr-4":{
			"Text\\":"src/"
		},
		"file":[
			"src/Helpers.php"
		]
	}
}


Es super interesante como funciona a la vez que enredado, pero la verdad me parece bastante interesante esta forma de trabajar. A seguir avanzando

Hola a todos, cómo hago para que php me reconozca caracteres especiales como la ñ ?

seee!!

helpers
Es un ayudante, lo que creamos para poder usar funciones que se repiten a lo largo del sistema en las vistas o controladores del modelo MVC.

Esto me recuerda al sistema de namespaces del lenguaje de programación C#

no tienen idea de lo rico que se ponen las pizzas viendo estos cursos 😃

Presento un error, me dice que la funcion lower no existe, cabe destacar si tengo la funcion creada como lo indica el video en mi helpers, adjunto el error para quien sepa a que se debe:
Fatal error: Uncaught Error: Call to undefined function lower() in /home/nombredeusuario/Documents/Platzi/FundamentosPhp/index.php:5
Stack trace:
#0 {main}
thrown in /home/nombredeusuario/Documents/Platzi/FundamentosPhp/index.php on line 5

Mi helpers.php usando “use” para no escribir el namespace varias veces y usando type hinting para especificar el tipo de los parámetros y del valor de retorno de las funciones.

<?php

use Text\Format;

if (!function_exists("upper")) {
    function upper(string $value): string
    {
        return Format::upperText($value);
    }
}

if (!function_exists("lower")) {
    function lower(string $value): string
    {
        return Format::lowerText($value);
    }
}

Tengo exactamente el mismo código, cuando uso Text\Format::upperText(‘hola’)
desde index funciona pero cuando uso el helper me devuelve:
"Fatal error: Uncaught Error: Call to undefined function upper()… "

<?php require __DIR__ . '/vendor/autoload.php'; echo upper('hola');

Excelente explicación.

Este es un curso de fundamentos de php o un curso para personas que ya saben los fundamentos de php?

Que se supone que está haciendo el profesor aquí?

No había visto nunca Composer, pero parece interesante…Veamos como evoluciona

Excelente explicación!