Last active
August 29, 2019 22:02
-
-
Save ribafs/c0f8c0b0452ba712bd203e0ac1c32474 to your computer and use it in GitHub Desktop.
Receber variável em classe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Dúvida sobre Orientação a Objetos em PHP | |
Estou agora tentando customizar/melhorar o pequeno aplicativo em MVC: | |
https://github.com/ribafs/mini-mvc | |
Tenho uma classe ClientesController abaixo: | |
https://github.com/ribafs/mini-mvc/blob/master/app/Controller/ClientesController.php | |
Ela tem um método index() mostrado abaixo | |
public function index() | |
{ | |
// Instance new Model (Customer) | |
$Customer = new Customer(); | |
// getting all customers and amount of customers | |
$customers = $Customer->getAllCustomers(); | |
$amount_of_customers = $Customer->getAmountOfCustomers(); | |
// load views. within the views we can echo out $customers and $amount_of_customers easily | |
require APP . 'view/_templates/header.php'; | |
require APP . 'view/clientes/index.php'; | |
require APP . 'view/_templates/footer.php'; | |
} | |
Os requires renderizam a view clientes. Acho meio estranho este uso dos requires aqui e gostaria de criar uma classe View() como abaixo: | |
<?php | |
namespace Mvc; | |
class View{ | |
public function __construct($name){ | |
require APP . 'view/_templates/header.php'; | |
require APP . 'view/'.$name.'/index.php'; | |
require APP . 'view/_templates/footer.php'; | |
} | |
} | |
E usar esta classe para substituir os requires, assim: | |
use Mvc\View; | |
E no método index() troquei os requires pela instância de View(): | |
$view = new View('clientes'); | |
Acontece que a view index: | |
https://github.com/ribafs/mini-mvc/blob/master/app/view/clientes/index.php | |
usa duas variáveis locais do método index (ver acima) que ficam logo acima dos requires e não estou conseguindo passar estas variáveis para a classe View para que a view index as receba. | |
Por favor, como faço isso? | |
Espero que tenha ficado claro, caro não tenha ficado posso esclarecer. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Resolvido:
Na view, passei as duas variáveis locais do método do Controller e os recebi no construtor com o mesmo nome:
class View{
}
No Controller
Beleza, então assim as duas variáveis estão disponíveis na view clientes, como estavam antes.
Obrigado aos colegas Marco Antônio e Cesinha Gutierres. Valeu.