dudas especialidad en php

Avatar

hola a todos,

dejaré la siguiente publicación para que todas las dudas que tengan de la especialidad en php las compartan y poco a poco las vaya respondiendo. por supuesto si la comunidad desea participar para responder es más que bienvenido.

saludos

77respuestas
PHPLaravelDesarrollo webBases de datos
Avatar

hola yesi, feliz navidad

precisamente tengo 1 duda

1 - conocimiento mínimo para entrar a crear temas basicos en wordpress.

saludos

Avatar

hooola iani,

feliz navidad *</:)

debido a qué el objetivo es crear temas básicos, a mi parecer debe ser css y javascript. mi recomendación es empezar con los elementos básicos de una plantilla (navbar, section, aside...) y a partir de ahí le aplicas css "sencillo" y después más avanzado hasta tener un tema muy completo.

Avatar

gracias por tu respuesta, te cuento que actualmente estoy tomando el curso de js para completar el siclo básico (realmente estoy afinando mis conocimiento) por igual hice el curso anterior de wp aca en edteam.

Avatar

hola iani :d

excelente, mientras más tecnologías tengas en tu experiencia más oportunidades tienes.

Avatar

problemas con xampp en mojave mac os he tenido problemas con xampp en mac os, ya que no permite modificar los archivos como php.ini, esto para modificar algunas cosas como los errores. otro archivo importante que no he podido modificar es el de config.inc.php para cambiar algunas configuraciones del phpmyadmin.

son problemas de permisos, he intentado sobrescribirlos, cambiarle los permisos con la terminal de comandos root (chmod 777) y no es posible. si alguien tiene alguna solución estaré muy agradecido.

Avatar

hola j j

si, por desgracia mojave (el cuál preferí no actualizar) tiene muchos problemas de permisos y cambió de cierta forma la estructura de algunos archivos.

en ese caso te recomiendo usar vagrant y homestead con eso te vas a ahorrar muchos problemas, así lo he usado en al menos dos versiones de mac, y un amigo lo tiene corriendo en mojave. si tienes dudas para vagrant + homested avísame :),

saludos

Avatar

hola! este mismo problema tuve hace unas semanas con mamp, en mi caso lo solucione instalando xampp haz intentado instalar la ultima version de xampp? logre montar mi ambiente web, en mojave con xampp pero de igual forma me monte una maquina virtual con win para la version de laragon y seguir con el ambiente que recomienda yessi. saludos!

Avatar

gracias por sus respuestas, lo que hice fue instalar mamp y este si me deja modificar los archivos antes mencionados. si con mamp tengo problemas utilizaré las recomendaciones de la profe yesi days

Avatar

hola johan,

mamp debe funcionar de maravilla, también lo usé y no tuve problemas, cualquier duda sigo a tus órdenes. saludos :d

Avatar

Buenas noches Yesi

Tengo una duda respecto a las clases creadas en la carpeta Model. En ella se especifican los atributos en concordancia a los campos de la tabla en la base de datos, digamos tabla usuario y clase usuario, mismos atributos. Pero no veo cómo esos atributos se están utilizando. Quizá lo harás mas adelante o no. Voy en la clase 4 de la creación del cms. Mi otra duda es con respecto al tema del token y la encriptación, no me quedó claro en que casos, pudiera ser distinto al token generado cuando envias por POST, al token que colocas en un campo hidden en el formulario.

Espero se entienda lo que quiero preguntar o sino me avisas para ver si lo redacto mejor. Muchos saludos

Avatar

Hola Oscar, disculpa apenas vi tu mensaje.

"Pero no veo cómo esos atributos se están utilizando". ¿Te refieres en el formulario? ¿cuando lo pasas por post? ¿me podrías dar más información? gracias

Token. Claro Oscar, se usa el token precisamente para validar que efectivamente el hidden y lo generado sea lo mismo, ¿en qué casos podría ser distinto? En el caso que se desee hacer una multi inserción y deseen utilizar el mismo token para hacerlo, en ese momento los tokens si son diferentes y evitamos hacer inserciones múltiples.

Saludos!

Avatar

Yesi, Ahora te explico mi duda, ayer escribí todo muy rápido. Por ejemplo, en la clase de Base de Datos con PHP, se programó la clase Estudiantes_modelo.php.
En ella, se incluyeron los atributos (nombre, materno, paterno, etc.) y los métodos insertar, actualizar, etc. (sobrescritos de su padre BD.php). Mi consulta apunta a esos atributos, ya que se declararon, pero no se usaron. Solamente se utilizaron los métodos, para poder llevar la información de la base de datos a la vista directamente. Espero puedas complementarme, muchas gracias Ysi por la respuesta de los token me quedo clarisimo. Saludos

Avatar

Hola Oscar, disculpa la tardanza de mi respuesta.

Creo que no me queda del todo claro tu mensaje. Para utilizar los atributos debes crear los getter de cada uno de los atributos para que cuando llames por ejemplo $alumnos->getNombre(); obtengas precisamente ese atributo, principalmente porque los tenemos como privados.

Tu me avisas si comprendí tu duda, saludos y nos vemos en clase :D

Avatar

Hola Profesora Yesi estoy llevando la especialidad de Php y pues me preguntaba si se podía realizar debug en php, así que me di a la tarea a investigar y realizar un post para lo que estén interesados en este tema espero les sirva esta información y a usted para que pueda validar esta información y me regale su comentario, les dejo el Link: Php + XDebug + Laragon + Visual Studio Code!

Avatar

Hola Erick, buenas tardes.

Muuuy bien!!, está muuuy muy bien tu post... :D lo comparto de inmediato en Twitter, me gustó mucho. Saludos!

Avatar

saludos profesora Yesi, la felicito por ese excelente material del curso de PHP con Mysql, mi pregunta es que solo veo que crea las clases del modelo, la vista y controlador de Estudiante, pero en ningún momento veo que haga un ejercicio donde aplique todas estas clases, sobre todo los controladores?, otro aspecto es el tema de reportes en php y la subida de archivos

Avatar

Creo que las vistas y controladores son para fines didácticos, en donde puedes ver mejor la aplicación de estos es el worshop php creando un cms

Avatar

Hola Armando, gracias por tu comentario y disculpa la tardanza. Y si Armando así como menciona Erick es para fines didácticos, la aplicación ya más en forma se hizo en el workshop, además en el curso de BD me enfoqué a una archivo clase en particular para que lo demás sea parte de su práctica y si hay dudas les respondo. En cuanto a subir archivos lo vimos justamente en la última clase del Workshop junto con agregar la portada de un video de youtube.

Avatar

Saludos a todos. Estoy poniendome al día en las clases, y revisando "Creación de un Blog II" no encuentro en el repositorio de Gitlab la carpeta Core y el archivo request.php

Avatar

x2 . Además del archivo config.php

Avatar

Hola!!!!,

Acabo de subir de nuevo el archivo, realmente si estaba ahí. Ustedes me dicen :) si todo bien.

Avatar

Petición: Por favor profesora Yesi, si puediera revisar y subir al repositorio el cms actualizado. Gracias

Avatar

Hooola Oscar,

Gracias por el comentario, tienen razón faltaban archivos. ¿me ayudarías a bajar la última versión y decirme si todo corre bien? gracias

Avatar

Buenos días,

Profesora Yesi. Revisando la forma que llamas al metodo validaCorreo, veo que lo hacer con $this->validaCorreo(parametros), y veo que tambien se puede hacer con self::validarCorreo(parametros).

Donde esta la real diferencia en aplicar uno u otro, ¿en herencia?, cual es la recomendada en estos casos?

Avatar

Hola Carlos,

Si efectivamente ambas son válidas. Y si existe diferencia, aunque ambos son punteros.

Cuando necesitemos acceder a una constante o método estático desde dentro de la clase (por ejemplo Estudiantes), usamos self:: Y $this-> para los no estáticos.

Saludos

Avatar

Hola Carlos

creo que $this-> es para Instancias y self:: es para métodos estáticos

esa es la diferencia sino mal me acuerdo

Avatar

Si , self es para llamar a métodos o atributos estáticos dentro de la misma clase en que te encuentras.

Avatar

USO DE THIS

$this-> hace referencia a una propiedad que esta dentro del mismo contexto de la clase de la cual quiere ser invocada y que además no es de tipo static

SELF

Por el contrario el uso de self hace referencia a una propiedad que se encuentra dentro del contexto de una clase, pero que además posee el atributo de ser de tipo static es decir que no requiere ser instanciada la clase que lo contiene para que puedas acceder a su valor

Avatar

Hola Yesi, que debo saber para meterme al curso de PHP?

Avatar

Hola Genaro, buenos días y disculpa la tardanza de mi respuesta.

Sinceramente nada :), es decir, no necesitas conocimientos previos de programación, en el curso les explico desde lo básico del lenguaje, además lo básico para comprender la lógica de programación. Espero que te animes a inscribirte :), saludos

Avatar

Hola Yesi, muy buena la clase de Laravel de hoy, tengo varias preguntas: Cada que tiempo son las clases? Son todas en vivo?
Que tiempo nos tomará el curso? Disculpa pero es que recién descubrí EDteam, el cual me parece genial, tienen muchas cosas buenas, Pienso pagar la suscripción para tener acceso a todo y poderlo revisar bien, Estuve revisando todo lo de la Especialidad de PHP, y me parece genial, ya yo tengo experiencia con el lenguaje pero hay muchas cosas que es bueno refrescarlas jeje. Todo el contenido que tiene previsto el curso de Laravel me parece genial Saludos y gracias

Avatar

Hola Rigoberto. Me parece que son dos clases por semana, y el curso debiera estar terminando antes del 29 de enero, ya que en esa fecha empezaría el curso de laravel avanzado. Igual ojalá te lo confirme la profesora. Saludos

Avatar

Muchas Gracias Por la info. Saludos

Avatar

Hooola Rigoberto,

Antes que nada gracias por el comentario :), y que bueno que descubriste Edteam. Como dice Oscar (uno de mis alumnos por cierto :D ) son dos clases por semana, siempre a la misma hora y son en vivo como bien mencionas lo que te permite hacer preguntas en el chat. Más adelante se sube la clase (primero completa y después editada) para que siempre tengas los recursos, vayas a tu ritmo y en el tiempo que tu le puedes disponer. Ojalá que te animes a tomar el curso de Laravel, es un framework muy popular y con oportunidades de trabajo.

Saludos!

Avatar

Pensando en el uso de los metodos "Getter" y "Setter" de la POO. Se podría decir que uno de los usos de los "Setter" seria cuando se intenta cambiar un nombre de usuario... Allí se hace el llamado al método "Setter" respectivo para que asigne el nuevo nombre de usuario?

Avatar

Pues si tienes un objeto llamado usuario con un atributo nombre_usuario, claro puedes crear un método que te permita settear esa propiedad. Ahora si ya quieres guardar esos cambios en la base de datos, te toca hacer un update, sea directamente en la aplicación o llamando a algun procedimiento almacenado.

Avatar

Hola Andrés.

Así como menciona Oscar, los setters si podrás usarlo para asignar un nuevo valor a ese atributo, pero recuerda que es solo temporal si es que no haces una actualización en tu base de datos.

Avatar

Buenas Yesi, antes de nada muchas gracias por tu tiempo y experiencia, estoy en el curso PHP desde Cero, por ahora todo genial. Una consulta sobre el tema de obtener el antepenúltimo elemento de un arreglo. En el ejemplo, habría que indicar $videojuegos[$posicion-1] de esta forma sí nos traeríamos el antepenúltimo, porque si nos queremos traer el penúltimo elemento e indicamos $posicion = count($videojuegos) - 1; al imprimir el elemento con echo $videojuegos[$posicion]; saldría el último. Un saludo y gracias.

Avatar

Hola Javi buenos días,

Si efectivamente con $videojuegos$posicion te trae el último.

$videojuegos = 'fortnite', 'mario bros', 'fifa', 'league of legends'; echo $posicion = count($videojuegos) - 1; echo "<br />"; echo $videojuegos$posicion;

Eso imprime "league of legends"

Avatar

Perfecto, es que me pareció un error en la clase y por eso lo comenté, nada sin importante, solo para que quedara claro.

Avatar

Buenas Yesi.

Una cuestión, por ejemplo, para pedir datos por teclado a un usuario, al estilo de la clase Scanner de Java, hay algo similar.

Un saludo y gracias.

Avatar

Hola Javi,

Acá la manera de pedir datos por teclado al usuario es agregando un input en html para que cuando tu muestres precisamente ese campo ahí mismo escribe y cuando haces el post entonces ya obtienes los datos de ese input o diferentes inputs.

Avatar

Sería lo más sencillo, más gracias Yesi :)

Avatar

Hola Yesi, tengo una consulta del curso de bases de datos con php, tengo un ejemplo sencillo de lo que entendí y es el siguiente, estaba tratando de probar las consultas a una base de datos y probe con esto:

CONSULTA: $prueba = 'SELECT * FROM usuarios';

var_dump($resultado);  ```

y esta otra forma

 ```foreach ($conexion->query($prueba) as $rs){
	var_dump($rs);
} ``` 

La primera no me funcionó (me devolvía un array con el codigo "select * from" asi como lo escribí), la segunda sí (devolvía el array normal de los datos de la BD), porque sucede esto? Yo se que el foreach recorre los datos que devuelve la consulta, pero porque no me funciona con la primera sentencia, si incluso está casi igual, solo sin foreach. Agradezco tu ayuda. Saludos.
Avatar

Hola Pablo, disculpa reciente me reincorporo a la comunidad.

Lo que sucede es que debes acceder a los resultados de esta consulta y en la primera parte no lo estás haciendo por eso el ->query($tuConsulta);

Tu me dices si quedó claro o lo podemos revisar con ejemplos.

Saludos

Avatar

Hola Yesi, tengo una consulta del curso de bases de datos con php, tengo un ejemplo sencillo de lo que entendí y es el siguiente, estaba tratando de probar las consultas a una base de datos y probe con esto:

CONSULTA: $prueba = 'SELECT * FROM usuarios';

var_dump($resultado);

y esta otra forma

foreach ($conexion->query($prueba) as $rs){ var_dump($rs); }

La primera no me funcionó (me devolvía un array con el codigo "select * from" asi como lo escribí), la segunda sí (devolvía el array normal de los datos de la BD) porque sucede esto? Yo se que el foreach recorre los datos que devuelve la consulta, pero porque no me funciona con la primera sentencia, si incluso está casi igual solo sin foreach. Agradezco tu ayuda. Saludos.

Avatar

La primera forma era: $resultado = $conexion->query($prueba); var_dump($resultado);

Avatar

Hola Pablo,

Si era para ejemplificar que de esa manera tenemos el query que se efectúa en la BD. Y el foreach ya es para obtener en cada iteración los datos.

Avatar

Buenas tardes, profesora. En la clase 2.5 de PHP usted dice que para pasar Datos por referencia debemos de usar: $viejaVariable = "Lorem"; $nuevaVariable=&$viejaVariable;

Hice el cógido sin el "&" y también me funcionó. ¿Es obligatorio poner ese símbolo o puedo omitirlo?, ¿o es buena práctica ponerlo?

¡Gracias!

Avatar

Hola Carlos,

Es una buena práctica :D

Avatar

Buenos días Profe. Me podria ayudar ya que cuando intento ejecutar el código me sale este error. CRUD de Estudiantes C: Insertar ERROR: SQLSTATEHY000 Access denied for user 'root'@'localhost' (using password: YES)

Avatar

generalmente ese error es por que tratas de usar una contraseña en tu cadena de conexión, pero tu gestor de bases de datos no tiene ninguna asignada; puedes probar dejando unas comillas sin nada entre ellas de este modo ""

Avatar

Hola Lilia,

Efectivamente como dice Alfredo es que tus credenciales de conexión están incorrectas, verifica tus accesos.

Avatar

hola profe tengo una duda ¿quiero realizar validadaciones de Formularios? pero no se como hacerlo desde ya muchas gracias me gusta mucho tus clases

Avatar

Hooola Juan!!!,

¿Estás con PHP puro o Laravel?

Avatar

hola Profe , estoy programando Php sin frameworks

Avatar

Buenas Yesi, sé que a lo mejor se va un poco del curso, pero por si acaso.

He planteado una duda en la zona general

Obtener datos de servicio externo XML para login por PHP

Un saludo y gracias.

Avatar

continúo a responderte en tu hilo. saludos

Avatar

Buenas noches profesora, mi duda es como puedo ver qué objetos estan ocupando más memoria en una aplicacion php y si es que se puede debugear el codigo

Avatar

Hola @Beto Agreda , si quieres debugear te recomiendo que prepares tu entorno primero para poder hacerlo y si php lo permite,

te adjunto el link de una guía que prepara para que no se me olvide como hacerlo https://erickmarcia.github.io/php-xdebug-laragon/

Avatar

Buenas tardes Profra. Yesi, Estoy tomando el Workshop de Crea tu propio CMS y en la sección de implementar un mensaje de WhatsApp me surgió la duda... ¿Cómo puedo enviar un mensaje a muchas personas desde un sólo botón? o crear una lista de difusión a partir de los números que tenga almacenados en mi base de datos.

Muchas gracias y excelente especialidad de PHP

Avatar

Hoola Erwin disculpa mi tardanza recién regreso a revisar la comunidad. Muchas gracias por llevar el Workshop. En ese caso si tendrás que usar la opción de grupos.

https://developers.facebook.com/docs/whatsapp/api/groups/

Avatar

Buenas noches he seguido el curso de php y me parece muy bueno pero... Soy programador y por lo general en mis trabajo se usa Oracle y SQL server. La configuración de SQL server me resultó normal... Pero Oracle es terrible, he seguido ya 10 tutoriales y siempre me sale algún error. Alguien sabe como hacer esto. Tengo php 7.3.3 y Oracle 12c

Avatar

Hola Fidel,

Muchas gracias por ser parte del curso. Si Oracle suele ser un problema. ¿Me puedes decir que error te sale? así podemos ir poco a poco o en todo caso compartirme tu repositorio? gracias

Avatar

Buenas noches profe Yesi. En el curso de PHP desde Cero en la clase 3.5 - Creación de arreglo asociativo... ustedes visualiza los resultados en el navegador de una diferente a la mia en cuanto a apariencia Me gustaria saber como hacer para tener la misma vista ordenada Los datos de su array se ven asi: array (size=4) 0 => string 'Lunes' (length=5)
1 => string 'Martes' (length=6) 2 => string 'Miercoles' (length=9) 3 => string 'Jueves' (length=6)

En el mio se ve de esta forma: array(4) { 0=> string(5) "Lunes" 1=> string(6) "Martes" 2=> string(9) "Miercoles" 3=> string(6) "Jueves" }

Avatar

Si entendí bien tu pregunta, lo que necesitas ver al inicio en la impresión de tu arreglo asociativo es la cantidad de arrays internos que lo componen, mira este ejemplo

<?php

$data = array(
	array("clave" => "uno", "clave" => "dos"),
	array("clave" => "tres", "clave" => "cuatro"),
	array("clave" => "cinco", "clave" => "seis"),
	array("clave" => "siete", "clave" => "ocho"),
);

var_dump($data);

Lo que me da como resultado es:

array(4) { 0=> array(1) { "clave"=> string(3) "dos" } 1=> array(1) { "clave"=> string(6) "cuatro" } 2=> array(1) { "clave"=> string(4) "seis" } 3=> array(1) { "clave"=> string(4) "ocho" } }

Como vez al inicio tengo esto array(4) que me indica la cantidad de arrays internos del principal; es decir estamos hablando de un array multi dimensional para tener una salida como esa haces uso entonces de var_dump()

Avatar

No exactamente eso...

sino que yo quiero tener la misma vista ordenada en la que le muestra su NAVEGADOR a la profe a mi me muestra en una linea y a la profe cada que hace var_dump le muestra con saltos de linea y mas mejor visualmente y tambien le muestra la linea del codigo a la que pertenece

Avatar

Hola Jorge,

Disculpa la tardanza, si :D, ¿qué crees? es una extensión de Chrome, te comparto la liga. https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa?hl=es

Dime de favor si es eso lo que comentas de la visualización, saludos

Avatar

Buenas noches profe Yesi. En el curso de laravel avanzado en la clase 2.7 - Consultas y manejo de información con eloquent II al ingresar a mi proyecto (http://myproject.test/dashboard) obtengo el siguiente error "SQLSTATEHY000 No such file or directory (SQL: select * from faker)". no se por que es, la conexión a la base de datos esta bien ya que al ejecutar (php artisan db:seed --class="FakerSeederTable"), se llena correctamente como se muestra en esta imagen (https://drive.google.com/open?id=1p_omAGSW1tOH7yQ0cCF7rSmPCqKUszi3). estoy utilizando mamp y las configuraciones son las que se encuentra en la imagen de este link (https://drive.google.com/open?id=1lGUEl_1IRRjC4xzG2l5IQeS08swDrMoM). estas configuraciones coinciden con las que tengo configuradas en el archivo .env


DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=8889 DB_DATABASE=myproject DB_USERNAME=root DB_PASSWORD=root DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock


en el archivo DashboardController tengo el siguiente código algo de muestra de la clase


<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Entities\{Test}; use DB; class DashboardController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $todos=Test::all(); die(); return view('dashboard')->with(compact('todos')); } ********************************************************************************* y en el archivo Test.php tengo lo siguiente ********************************************************************************* <?php namespace App\Entities; use Illuminate\Database\Eloquent\Model; class Test extends Model { protected $table ='faker'; } ********************************************************************************* Espero me puedan ayudar, quedo atento.
Avatar

PD Perdón por la escritura no se por que se publico de esa forma.

Avatar

Hola Johan,

puedes escribir lo siguiente en tu consola:

composer dump-autoload php artisan migrate:rollback y después corre tu migración del faker. Me avisas si ya está bien o en todo caso revisamos tu código. saludos

Avatar

Hola profe Yesi, cordial saludo, he realizado las recomendaciones, pero no he tenido exito.

dejo link del repositorio del proyecto, el codigo esta tal se estaba siguiendo en la clase de laravel avanzado.

quedo atento. https://github.com/perez28/laravel

Avatar

Buenas Tardes Profe Yesi estoy siguiendo el workshop de crear el API con Laravel y en la parte de enviar tweets me aparece este mensaje de permisos, quisiera me ayude que podría hacer ya que he buscado en varias páginas y no he logrado encontrarle solución `php NotificationChannels \ Twitter \ Exceptions \ CouldNotSendNotification Couldn't post notification. Response: Your credentials do not allow access to this resource.

Avatar

Hola Jerson.

¿Ya diste de alta tu aplicación en el panel de Twitter? Ahí te genera tus credenciales, ¿esas ya las tienes? saludos

Avatar

Si Profe ya me da las credenciales y todo ya que me funciona el traer datos desde Twitter pero al enviar mensajes no me permite y me aparece el error antes descrito

Avatar

Tienes algún repositorio que pudieras compartirme y lo reviso? gracias

Necesitas iniciar sesión para responder.
¿En qué estamos trabajando?
Sass Desde Cero

Sass Desde Cero