12.- PHP Orientado a Objetos - Namespaces

  Рет қаралды 34,279

codigofacilito

codigofacilito

9 жыл бұрын

🚀 Desbloquea más de +170 cursos Premium a un precio especial: codigofacilito.com/promo
🐊 Síguenos en:
Twitter: / codigofacilito
Facebook: / codigofacilito
Instagram: / codigofacilito
TikTok: codigofacilito.oficial
----
Código Facilito es una de las plataformas de aprendizaje online de programación más grandes de habla hispana. Desde el 2010 formamos programadores en toda América Latina y España enseñando. HTML, JavaScript, React, Python, Rails, Go y mucho más.

Пікірлер: 92
@sebastianrincon7381
@sebastianrincon7381 8 жыл бұрын
No hay que ser malagradecido al contrario codigoFacilito tiene muy buenos cursos pero este tema fue inentendible.
@edurperez5226
@edurperez5226 3 жыл бұрын
Yo sí entendí ;-;
@franco26978
@franco26978 4 жыл бұрын
El único video con el que logre entender del todo namespace, gracias
@edsermoreno7629
@edsermoreno7629 5 жыл бұрын
Lo que más me gusta es a la velocidad que escriben código, lo que hace que el video sea más rápido e interesante. lo mantiene a uno concentrado al 100 %.
@rgamezdiaz
@rgamezdiaz 8 жыл бұрын
Hola estoy muy agradecido por el curso, agradezco que brinden estos conocimientos de manera gratuita. De veras considero que codigofacilito.com es un exelente sitio donde brindan todos estos cursos. Con respecto a este mi único señalamiento es que en algunos casos se explica como funciona lo que se esta tratando pero no se explica porque es útil especificamente o que lo diferencia de hacerlo de otra manera, es decir, que es lo novedoso del topico que se trata en cuestion. Mil gracias por el aporte
@JuanCarlosLerma
@JuanCarlosLerma 8 жыл бұрын
Estoy siguiendo el curso, en los próximos días continuaré viéndolos. Muy interesante las cosas que haces. Me ha interesado lo del namespace, el trait y lo del autoload que está genial. Saludos desde Venezuela.
@rafaeltorrealba6689
@rafaeltorrealba6689 9 жыл бұрын
Felicitaciones ya hoy publicaste el video #12 de este tutorial.
@edsermoreno7629
@edsermoreno7629 5 жыл бұрын
Muy, muy bueno. ando aprendiendo Laravel y es imperativo ver este video que te conduce al saber como funcionan los Frameworks. Gracias.
@davoxpantostado
@davoxpantostado 3 жыл бұрын
Excelente explicación, y hasta los errores fueron muy útiles. Gracias.
@cristianandresvargasgonzal4510
@cristianandresvargasgonzal4510 7 жыл бұрын
Gracias por el video, no lograba entender lo de los namespace busque en documentacion y tutoriales sobre este tema muy poco se habla sobre los directorios o carpetas donde se almacena los archivos.php que es algo importante y no se puede perder de vista pues esa es la gracia del namespace.
@cirogoyeneche9400
@cirogoyeneche9400 8 жыл бұрын
Anteriormente, comenté que no sabia el uso de los namespaces. Pero buscando info, encontré que sirven para diferenciar, es decir, si se tienen quizás clases con el mismo nombre, por ejemplo, se usan los namespaces para poder diferenciarlas. Un ejemplo: Si en una compañía entra alguien que se llame Pepe y después entra otro, se usan los apellidos para diferenciarlos, es así en código pero se usan los namespaces.
@davidticstorm4114
@davidticstorm4114 6 жыл бұрын
Muy buenos los videos hasta ahora sobre el uso de namespace...
@sebastiancipolat
@sebastiancipolat 7 жыл бұрын
Gracias Amigo, me haz salvado!!
@ogermanernesto
@ogermanernesto 3 жыл бұрын
Excelente explicación.
@Frankcedenho
@Frankcedenho 5 жыл бұрын
Excelente! Pilas con la ruta que le damos... api/ en mi caso estaba de mas ya que index en mi caso estaba a la misma altura que las carpetas.
@carlosfabianpalaciospalaci6289
@carlosfabianpalaciospalaci6289 3 жыл бұрын
A la fecha de hoy(2021) siguiendo el curso.
@masterleonardo
@masterleonardo 9 жыл бұрын
Muy bueno el tutorial muchas gracias. Como consulta. Para mostrar información en tiempo real es recomendable utilizar socket o una conexión push, Quedo atento a sus comentarios saludos desde chile
@jannermunoz9984
@jannermunoz9984 5 жыл бұрын
gran tutorial me aclaro muchas dudas de los frameworks
@drivegr2497
@drivegr2497 3 жыл бұрын
gracias por la info del comienzo me sirvió para corregir un error que tenia por colocarlo después de código php y html
@misaelbonilla3234
@misaelbonilla3234 4 жыл бұрын
Sos grande amigo, gracias
@naqzher
@naqzher 9 жыл бұрын
muy bueno!
@juanmaa1414
@juanmaa1414 7 жыл бұрын
Muy bueno. Solo aclarar que una de las convenciones es que se coloca por ejemplo PersonasController y no PersonasControllers, ya que "controller" llamamos a un tipo de clase y archivo que cumple con esa función, y por lo tanto, lo lógico es que sea controller en singular.
@alejandrotiria8856
@alejandrotiria8856 8 жыл бұрын
Eres un crack para php
@AlejoElGunner
@AlejoElGunner 7 жыл бұрын
Realmente no entendí porque los namespaces es lo mas apasionante del curso y lo que todos esperaban o.O
@tatoElpaisa
@tatoElpaisa 7 жыл бұрын
+Alejandro Rueda , un saludo. Realmente los "Namespaces" nos ayudan a dar orden, estructura y cumplimiento a convenciones que mejoran la administración y mantenimiento del código. Básicamente es eso.
@JorhelR
@JorhelR 4 жыл бұрын
Yo creo que lo dice porque puede poner un autoload.
@jc.diazbarreto
@jc.diazbarreto 9 жыл бұрын
Muy bueno el curso. Cuando suben el siguiente video?
@marcosgonzalez9426
@marcosgonzalez9426 6 жыл бұрын
genio!
@nicolas17197
@nicolas17197 4 жыл бұрын
Muy bueno el curso, pero crack dale un zoom al IDE la estoy sufriendo para ver desde el celu.
@emiliosantana2243
@emiliosantana2243 Жыл бұрын
Gracias por el curso. Una consulta: estos códigos son validos para la versión del PHP 8 y mas?
@yoto3326
@yoto3326 8 жыл бұрын
Haré como si el str_replace no existe todo el vídeo iba de 10 hasta ay, quizás no sean compatibles esos métodos no me quedo del claro la anulación del namespace cambiando los nombres un enredo total pero muy bueno el resto. Saludos gracias por compartir esta info!
@valenciapaginasweb
@valenciapaginasweb 9 жыл бұрын
En el minuto 6:30 se bajo el volumen
@LuisHernandez-hh9ul
@LuisHernandez-hh9ul 8 жыл бұрын
Yo no soy un experto en PHP, sin embargo tengo experiencia desarrollando paginas, aplicaciones y sistemas en dicho lenguaje y entiendo perfectamente lo que el tutor explica y modifica en el código, veo que muchos se quejan por no entender ciertas partes del video, seria mejor que comiencen con algo más básico para poder entender algo más complejo. Para eso se debe tener algo esencial llamado "Lógica de programación".
8 жыл бұрын
Recientemente empecé a aprender PHP y en un sistema de pruebas donde voy realizando todas mis prácticas estoy utilizando PDO en lugar de MySQLi, tanto para la conexión como para el resto de clases y funciones (simplemente por cuestión de versatilidad); hasta el momento no tuve ningún problema, pero al empezar con el tema de los namespaces tengo la sensación que PDO no funciona con namespaces, eso o existe otro método para hacerlos funcionar en PDO porque utilizando el método que nos enseñas créeme que ya he revisado mil veces el código y no existe ningún problema, no obstante indica que la clase no existe. Saludos!
@delvistovar4132
@delvistovar4132 8 жыл бұрын
Hermano me interesa saber como resolviste ese inconveniente saludos
8 жыл бұрын
Lamento la tardanza, el mensaje lo hice hace 3 meses y desde entonces ya he trabajado en algunos proyectos PHP por lo que estuve algo liado. Precisamente ahora estoy trabajando en un nuevo proyecto que voy a desarrollar utilizando el patrón MVC + PDO y por ello es que volví a repasar el vídeo y vi el mensaje; revisando la sintaxis que utilizaba en aquel entonces creo que el problema no se encuentra tanto en la compatibilidad del método PDO con los namespaces, si no precisamente en la sintaxis que yo utilizaba al momento de invocar una clase. Por ejemplo yo hacía esto: $variable = new clase(); $variable -> metodo(); Que es correcto, en primer lugar, creaba una variable donde instanciaba la clase y en segundo lugar utilizaba -> para llamar al método de esa clase, mientras que “creo” (aun no puedo confirmarlo porque aún no me considero un experto y recién empiezo este proyecto) que es ahí donde partía el problema, pues usando autoload y namespaces la forma de llamar a la clase y su método seria directamente así: models\clase::metodo(); También se puede utilizar “use” para crear un alias y no escribir el models\clase, se haría de la siguiente forma: use models\clase as alias; alias::metodo(); La última vez que lo hice no me funciono y no había forma que encontrase el fallo por lo que me rendí con este asunto, claro, sin ser experto es normal que haya cosas que se escapen, pero aprendiendo poco a poco se van agarrando las mañas y creo que el problema es realmente el estar mezclando sintaxis, si vas a utilizar PDO, vas hacerlo de la forma correcta y en todo el sitio, no utilices PDO aquí, MySQLi allá... Hasta donde alcanzan mis conocimientos la teoría tiene su lógica, pero déjame lo ponga en práctica para confirmarlo, si me sale con todo gusto vuelvo a escribir un comentario para indicar que estaba en lo correcto y si no lo estaba, indicar donde fallaba. Saludos!
8 жыл бұрын
Y te respondo porque hasta apenas encontré el motivo. No era por lo que decía, la sintaxis que estaba utilizando en aquel entonces, aunque mejorable era correcta, efectivamente es un problema de los namespaces con PDO que tiene una sencilla solución: En primer lugar se declara el namespace ¿no? si se utiliza PDO y con nuestro autoload configurado como se indica en el vídeo va a indicar que el archivo no existe, pero si vemos los errores nos dice algo muy curioso: Fatal error: Uncaught Error: Class 'model\PDO' not found... ¡Eureka! por supuesto que no existe, no tengo ningún archivo PDO dentro de model ¿Solución? crear un alias de la siguiente forma: namespace nombre_cualquiera; use PDO; ¡Listo! arreglado el problema, ahora sí existe el archivo. ¡Saludos!
@gvargasruiz
@gvargasruiz 7 жыл бұрын
Me parece que le problema más bien está en lo de static y abstrac.
@juanofdark
@juanofdark 6 жыл бұрын
Hola, porque no usaste la sentencia use, en vez de hacer un autoloader?
@HenryBeGa
@HenryBeGa 6 жыл бұрын
Al final no entendí naada, un par de horas confundido pero luego me salió bien, o eso espero. En mi caso escribí el mismo código, con las diferencias que los archivos tienen el mismo nombre: api/Models/persona.php y api/Controllers/persona.php, luego en index.php escibí: function autoload($clase){ include str_replace("\\","/","$clase.php");} spl_autoload_register('autoload'); Models\persona::Hola(); Controllers\persona::Hola();
@HenryBeGa
@HenryBeGa 6 жыл бұрын
Otra cosa que pude comprobar para que funcione, el nombre del archivo php debe ser igual al de la clase, es decir: personaController.php y class personaController{ }
@dannyquispe6015
@dannyquispe6015 8 жыл бұрын
mmmmm si un poco flojo pero sus aportes son buenos ok estoy aprendiendo mucho. a los q no les gusta este metodo en ve de criticar pueden dar un unlike pero a ud mismo por no valorar lo que al tutor el tiempo y dedicación que te traen "gratis" maldicion es gratis ok. no sean frescos ai quieren criticar primero compren sus libros y su videos. man tu sigue estas bien solo q si aveces deves de preparte un pelo o en todo caso antes de subir solo revisalo con alguien ps :) vamos man no dejes q estos pelados todabia de misios conchudos te bajen la moral.
@wordle_23
@wordle_23 8 жыл бұрын
agrego, el namespace debe de estar en la primer linea, sino no funciona. por mas que no haya error de codigo
@compartelo007
@compartelo007 5 жыл бұрын
Las clases por convención no deben ir en plural, son maquetas de objetos deberían ir en singular
@juniorsanchez5202
@juniorsanchez5202 7 жыл бұрын
que buen tutorial esta fácil de entender pero deberías realizar primero los ejemplos porque si cambias cada rato el código puedes hacer confundir
@andresmestradev
@andresmestradev 9 жыл бұрын
saludos, con que programa estas grabando la pantalla ? +codigofacilito
@cirogoyeneche9400
@cirogoyeneche9400 8 жыл бұрын
Hola, no sé si es medio tarde. Pero estuve un tiempo en Linux Ubuntu y creo que se llama Kazam.
@pegatino
@pegatino 4 жыл бұрын
Que se puede decir de la palabra reservada Use?
@mundostar5680
@mundostar5680 7 жыл бұрын
me sale error en linea 1
@victorguzman7487
@victorguzman7487 7 жыл бұрын
@adoniyajoo
@adoniyajoo 6 жыл бұрын
En el archivo donde se llama las clases solo debe quedar asi: spl_autoload_register(function($clase){ $ruta = "api/".str_replace("\\", "/", $clase).".php"; include_once($ruta); }); Controlador\Persona::mostrar(); Modelo\Persona::mostrar(); No es necesario cambiar nada mas....
@JoseAlvaradoo
@JoseAlvaradoo 9 жыл бұрын
Al final no quedó muy claro, ya que cambiaste el nombre de una de las clases lo que haría inútil al Namespace. Claro, esto para adaptarlo a nuestro spl_autoload_register(); y todo por hacer de buena práctica colocando el archivo del controlador como PersonaController.php Si ambos archivos se llamaran Persona.php y uno está en /Models y el otro en /Controllers al hacer el spl no tendríamos problemas.. Y por lo tanto, no tendríamos que cambiar el nombre de la clase, seguiríamos teniendo las clases con el mismo nombre :P
@dindjarin360
@dindjarin360 9 жыл бұрын
Jose Alvarado Si, todo iba bien pero al final yo quede confundido con el cambio de nombre a la clase y al archivo :/
@AngelHdzMultimedia
@AngelHdzMultimedia 9 жыл бұрын
Professor Zoom Hola Eobard thawne eres todo un loquillo xD
@halperiano
@halperiano 9 жыл бұрын
+Professor Zoom asi son los de codigo facilito no preparan ya la clase sino q nos hacen perder el tiempo para luego decirnos q hay un error borran todo y kedas asi U.u
@freivincampbell
@freivincampbell 8 жыл бұрын
Depende de los profes!! bueno tutores
@halperiano
@halperiano 8 жыл бұрын
Freivin Campbell eso no tiene nada q ver amigo mio
9 жыл бұрын
al final dejaste comentado el echo.
@elarcademan
@elarcademan 7 жыл бұрын
aaa pero al final has usado otro nombre para llamar a la clase es decir Models\Persona::Hola(); y Controllers\PersonaControllers::Hola(); no se supone que podemos usar el mismo nombre con diferente namespace?
@elarcademan
@elarcademan 7 жыл бұрын
ya entendi jejeje gracias
@qqqqqqqqqqqqqqq67
@qqqqqqqqqqqqqqq67 5 жыл бұрын
namespaces significa espacios de nombre, y no, nombres de espacio.
@sheidy231
@sheidy231 7 жыл бұрын
Porque $clase almacena esa ruta? no entendi esa parte.
@ColdRooster
@ColdRooster 5 жыл бұрын
Me anoto a tu duda..
@lazfercode
@lazfercode 7 жыл бұрын
para los que usamos SO Windows puede quedar asi $ruta = "..\\api\\".$clase.".php";
@sheidy231
@sheidy231 7 жыл бұрын
Sabes porque la variable $clase almacena esa ruta? esa parte nunca fue explicada.
@josuegomez3352
@josuegomez3352 4 жыл бұрын
@@sheidy231 ¿Hallaste la respuesta a esa pregunta? jaja
@carlosfabianpalaciospalaci6289
@carlosfabianpalaciospalaci6289 3 жыл бұрын
@@josuegomez3352 Cuando utilizamos Models\Persona::hola() la funcion spl_autoload_register detecta esta "ruta" \Models\Persona, donde esta se almecenara en el parametro $clase es mi oponion.
@cirogoyeneche9400
@cirogoyeneche9400 8 жыл бұрын
Entendí cómo hacerlo pero no el uso.
@victorguzman7487
@victorguzman7487 7 жыл бұрын
El uso sería poder utilizar varias clases sin importarnos que se llamen igual para eso el namespace como indicador de la clase, y no estar renombrando las clases que nos arrojaran error el codigo por que se llamaran igual y andar a buscar y reemplazar su nombre. Bueno eso yo le entendi
@luisstiventrujilloortiz8734
@luisstiventrujilloortiz8734 5 жыл бұрын
no entendí nada para que entonces si igual terminó al final llamando a la clase PersonasControllers, que se supone era lo que no quería -.-
@luisstiventrujilloortiz8734
@luisstiventrujilloortiz8734 5 жыл бұрын
les recomiendo este video: kzbin.info/www/bejne/sIXbq5KhhLF8kK8 está en ingles, pero me sacó muchas dudas que aquí se me generaron
@tatoElpaisa
@tatoElpaisa 7 жыл бұрын
Pueden complementar el tema de "spl_autoload_register" aquì: php.net/manual/es/function.spl-autoload-register.php
@ColdRooster
@ColdRooster 5 жыл бұрын
Estaba leyendo el link y mi duda con respecto al vídeo es en la función anónima recibe un parámetro $clase, en qué momento se envió algo a esa función anónima?? Esta muy lindo eso de recuperar el namespace de Models\Persona, pero en qué momento se cargó?
@cquirozdev
@cquirozdev 7 жыл бұрын
Me está costando un poco entender el tema.
9 жыл бұрын
Excelentes tutoriales los publicados, pero intenta respirar un poco más :D
@codex8646
@codex8646 7 жыл бұрын
del minuto 10 para arriba no entendi un carajo :v
@miguelorellana4052
@miguelorellana4052 5 жыл бұрын
Más de la mitad del ejercicio resolviendo errores....
@juancarloscb1303
@juancarloscb1303 8 жыл бұрын
deja de tomar cafe antes de hacer un video, pareciera que tienes prisa y eso genera una mala experiencia de aprendizaje
@alejandrogonzalez8032
@alejandrogonzalez8032 8 жыл бұрын
En 8:55 has dicho "fueramos hecho". Eres muy bueno programando, pero eso daña tu reputacion... Se dice: "HUBIERAMOS hecho".
@rodrigogarciatrejo8084
@rodrigogarciatrejo8084 7 жыл бұрын
es que el hubiera no existe ajajajajjajajja
@rodrigogarciatrejo8084
@rodrigogarciatrejo8084 7 жыл бұрын
el se lo tomo literal
@tatoElpaisa
@tatoElpaisa 7 жыл бұрын
Pero por supuesto que si existe. No entiendo como hacen correcciones si no tienen el conocimiento. Hubiéramos o Hubiésemos, es la conjugación del verbo Haber en PRETÉRITO IMPERFECTO. Consúltalo en RAE. Saludos.
@softfarr
@softfarr 3 жыл бұрын
La traducción de "namespaces", NO es "nombre de espacios". Es, "Espacio de Nombres". Ojo con las traducciones porque confunde a los videntes.
@EricLarrea
@EricLarrea 6 жыл бұрын
Es evidente que el orador domina perfectamente el tema .. pero asimismo que no gastó ni un minuto en preparar la clase, se lo sacó todo de la cabeza al vuelo ... si al final corriges una línea y luego todo sale bien ... ok .. Pero cuando empiezas a cambiar cosas a una velocidad de vértigo ... muchos podrían quedar desfazados ... y se verán obligados a ver el video una y otra vez para entender, o simplemente buscarse otro video (cosa inapropiada para este canal) .. considero que son errores imperdonables ... el profesor debería tener un código 100% probado antes de iniciar el video, así fuera en un papel aparte y lo reescriba luego en la pantalla, o pausar el video, arreglar las cosas ... Y en este caso al final perdió totalmente el sentido del "namespace" pues tenías dos clases con diferentes nombres .. entonces para que me sirvió el namespace ... esas mismas clases se habrían cargado perfectamente con el autoload sin el uso de "namespace" porque tenían diferente nombre ("Persona" y "PersonasControllers") Lo bueno de Código facilito es que son videos breves de temas específicos ... pero eso no debería convertirse en mareo del expectador.
@rkm357
@rkm357 9 жыл бұрын
Incomoda esa forma de enseñar, confunde para los que van empezando y no se definen bien las cosas
@dannyquispe6015
@dannyquispe6015 8 жыл бұрын
mmmmm si un poco flojo pero sus aportes son buenos ok estoy aprendiendo mucho. a los q no les gusta este metodo en ve de criticar pueden dar un unlike pero a ud mismo por no valorar lo que al tutor el tiempo y dedicación que te traen "gratis" maldicion es gratis ok. no sean frescos ai quieren criticar primero compren sus libros y su videos. man tu sigue estas bien solo q si aveces deves de preparte un pelo o en todo caso antes de subir solo revisalo con alguien ps :) vamos man no dejes q estos pelados todabia de misios conchudos te bajen la moral.
13.- PHP Orientado a Objetos - Planteamiento e ini
8:37
codigofacilito
Рет қаралды 31 М.
29 - Namespace en PHP - Curso PHP 8 desde cero (actualizado)
8:06
Spot The Fake Animal For $10,000
00:40
MrBeast
Рет қаралды 181 МЛН
Llegó al techo 😱
00:37
Juan De Dios Pantoja
Рет қаралды 57 МЛН
This is the Only Right Way to Write React clean-code - SOLID
18:23
Ruby on Rails está muerto?
10:25
Gabriel Gómez | @gabodeveloper
Рет қаралды 1,3 М.
11.- PHP Orientado a Objetos - Traits
11:53
codigofacilito
Рет қаралды 25 М.
8.- PHP Orientado a Objetos - Interfaces
17:13
codigofacilito
Рет қаралды 45 М.
5.- PHP Orientado a Objetos - Modificadores de acceso
13:26
codigofacilito
Рет қаралды 49 М.
How to Do 90% of What Plugins Do (With Just Vim)
1:14:03
thoughtbot
Рет қаралды 879 М.
How Do Linux Kernel Drivers Work? - Learning Resource
17:02
LiveOverflow
Рет қаралды 542 М.
14.- PHP Orientado a Objetos - Creación de nuestros modelos
14:35
codigofacilito
Рет қаралды 34 М.
Spot The Fake Animal For $10,000
00:40
MrBeast
Рет қаралды 181 МЛН