Como usar funcion de otra clase y otro archivo?

  • Autor Autor jensync82
  • Fecha de inicio Fecha de inicio
J

jensync82

No recomendado
Hola tengo esta duda:
Tengo este archivo
zDvjVxN1S3_H47Z1-z-RBA.png

hay esta la clase llamada: class SpaceUsage dentro de ella una funciona llamada info() es publica como se ve en la imagen
Ahora tengo este otro archivo
59SExTE5TXCHUJQiTt-azw.png


Quiero guardar el resultado de la funcion info del primer archivo en una variable del segundo como lo puedo hacer?
Lo intente haciendo:
$uploadedFilesize = info();

pero no funciona
 
Debes incluir el archivo en donde quieres usarlo por ejemplo"include 'nombreDelArchivo.php';"
 
Debes incluir el archivo en donde quieres usarlo por ejemplo"include 'nombreDelArchivo.php';"

lo intente de esa forma y no funciona, el codigo esta en php con laravel.
ambos archivos estan en el mismo directorio.
 
lo intente de esa forma y no funciona, el codigo esta en php con laravel.
ambos archivos estan en el mismo directorio.

Pues en la clase de FileServer pon extends SpaceUsage, ya si no jala, entonces estas accediendo mal a dicha funcion
 
Última edición:
Buenas noches compañero,
Bien en laravel no se como será, pero en php, si estas usando objetos y quieres llamar a una función pública de otra clase, lo que se hace es primero incluir el archivo de la clase arriba.
Luego instanciar la clase, y luego llamar a la funcion que deseas.
Por lo que entiendo queres desde la clase "FileSaver" llamar a la clase "SpaceUsage"y hacer uso del método publico "info()", entonces debería ser algo asi:

PHP:
//No olvidar incluir la clase

$objSpaceUsage = new SpaceUsage(); //Chequear que requiere el construct de la clase para instanciar 
$objSpaceUsage->info();

dentro de info() quizas puedes pasar el dato a guardar o a manipular

Saludos, espero haberte ayudado
 
En Laravel es muy sencillo llamar métodos de otras clases.

Entiendo que ya tienes incluido el namespace de la clase que tiene la función que quieres ejecutar en el otro archivo. Para llamar al método tienes que hacer lo siguiente:

En la línea 40 reemplaza tu variable por eso:


PHP:
$uploadFileSize = new SpaceUsage();
$uploadFileSize->info();

Supongo que eso debería ser suficiente.
 
Buenas noches compañero,
Bien en laravel no se como será, pero en php, si estas usando objetos y quieres llamar a una función pública de otra clase, lo que se hace es primero incluir el archivo de la clase arriba.
Luego instanciar la clase, y luego llamar a la funcion que deseas.
Por lo que entiendo queres desde la clase "FileSaver" llamar a la clase "SpaceUsage"y hacer uso del método publico "info()", entonces debería ser algo asi:

PHP:
//No olvidar incluir la clase

$objSpaceUsage = new SpaceUsage(); //Chequear que requiere el construct de la clase para instanciar 
$objSpaceUsage->info();

dentro de info() quizas puedes pasar el dato a guardar o a manipular

Saludos, espero haberte ayudado

En Laravel es muy sencillo llamar métodos de otras clases.

Entiendo que ya tienes incluido el namespace de la clase que tiene la función que quieres ejecutar en el otro archivo. Para llamar al método tienes que hacer lo siguiente:

En la línea 40 reemplaza tu variable por eso:


PHP:
$uploadFileSize = new SpaceUsage();
$uploadFileSize->info();

Supongo que eso debería ser suficiente.

Hola gracias a los 2 por responder:
intente de la forma que me dicen pero aun asi la variable "$uploadFileSize" no me toma el valor que regrese la funcion info.

en otra parte del script vi que hacen esto:
Auth::user()

si no entiendo mal con eso usan la funcion user de la clase Auth o me equivoco??

pero mirando en el inicio del script hay una linea use Auth
4qqZH3JXQQaW5fEzO64GAw.png


intente colocar use SpaceUsage
y luego SpaceUsage::info();
HJKPTfLuRcaHbIN5bw7E8w.png


Pero tampoco funciona seguramente estoy haciendo algo mal, a ver si me ayudan.
Ambos archivos estan en la misma carpeta y el misma namespace
 
Hola gracias a los 2 por responder:
intente de la forma que me dicen pero aun asi la variable "$uploadFileSize" no me toma el valor que regrese la funcion info.

en otra parte del script vi que hacen esto:
Auth::user()

si no entiendo mal con eso usan la funcion user de la clase Auth o me equivoco??

pero mirando en el inicio del script hay una linea use Auth
4qqZH3JXQQaW5fEzO64GAw.png


intente colocar use SpaceUsage
y luego SpaceUsage::info();
HJKPTfLuRcaHbIN5bw7E8w.png


Pero tampoco funciona seguramente estoy haciendo algo mal, a ver si me ayudan.
Ambos archivos estan en la misma carpeta y el misma namespace

Intenta debuguear esa variable, te debería retornar un array, ya que la función info() retorna un array.

Utilizas aliases, agregaste eso en la config de tu app?

Ya intentaste agregar esto??

$uploadFileSize = new SpaceUsage();
$uploadFileSize->info();
 
Intenta debuguear esa variable, te debería retornar un array, ya que la función info() retorna un array.

Utilizas aliases, agregaste eso en la config de tu app?

Ya intentaste agregar esto??

$uploadFileSize = new SpaceUsage();
$uploadFileSize->info();

no he usado aliases y no se en que parte de la configuracion se deberia agregar :ambivalence:

si intente:
$uploadFileSize = new SpaceUsage();
$uploadFileSize->info();

Pero no funciona.
 
no he usado aliases y no se en que parte de la configuracion se deberia agregar :ambivalence:

si intente:
$uploadFileSize = new SpaceUsage();
$uploadFileSize->info();

Pero no funciona.

Puedes compartirnos el debug?

No se como esta la distribución de tus archivos, pero puedes verificar que en tu archivo este siendo llamada la clase correctamente.

Haz intentado extender la clase???
 
Atrás
Arriba