Ir para conteúdo

Lucas Fregonezi

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Lucas Fregonezi


  1. Bom dia pessoal, sou iniciante em php e estou tendo um problema que não sei resolver.

    estou tentando aprender MVC e logo de inicio tive um erro que não sei como resolver, alguém pode me ajudar?

     o erro:

    Fatal error: Uncaught ArgumentCountError: Too few arguments to function App\Utils\View::render(), 1 passed in C:\xampp\htdocs\app\Controller\Pages\Page.php on line 16 and exactly 2 expected in C:\xampp\htdocs\app\Utils\View.php:33 Stack trace: #0 C:\xampp\htdocs\app\Controller\Pages\Page.php(16): App\Utils\View::render('pages/header') #1 C:\xampp\htdocs\app\Controller\Pages\Page.php(34): App\Controller\Pages\Page::getHeader() #2 C:\xampp\htdocs\app\Controller\Pages\Home.php(23): App\Controller\Pages\Page::getPage('Like Desenvolvi...', '<h1>Home LucasD...') #3 C:\xampp\htdocs\index.php(7): App\Controller\Pages\Home::getHome() #4 {main} thrown in C:\xampp\htdocs\app\Utils\View.php on line 33

    a pagina Page.php:

    <?php
    
    namespace App\Controller\Pages;
    
    use \App\Utils\View;
    
    class Page {
    
        /**
         * 
         *Método responsavel por renderizar o topo da pagina 
         * @return string
         */
    
        private static function getHeader(){
           return View::render('pages/header');
            //$depura = View::render('pages/header');
            //var_dump($depura);
        }
    
        private static function getFooter(){
            return View::render('pages/footer');
        }
    
        /**
             * Metodo responsavel por retornar o conteúdo (view) da nossa Pagina Generica
             * @return string
             */
    
        public static function getPage($title, $content) {
    
            return View::render('pages/page', [
                'title' => $title,
                'header' => self::getHeader(),
                'content' => $content,
                ///'footer' => self::getFooter()
            ]);
    
        }
    
        
    }
    
    ?>

    a pagina View.php

    <?php 
    
    namespace App\Utils;
    
    class View{
    
        /**
         * 
         * Método responsavel por retornar o conteúdo de uma view
         * @param string $view
         * @return string
         * 
         */
    
        private static function getContentView($view){
    
            //
            $file = __DIR__.'/../../resources/view/'.$view.'.html';
            return file_exists($file) ? file_get_contents($file) : '';
    
        }
        
    
        /**
         * 
         * Método responsavel por retornar o conteúdo renderizado de uma view
         * @param string $view
         * @param array $vars (strings/numerics)
         * @return string
         * 
         */
    
        public static function render($view, $vars){
    
            $contentView = self::getContentView($view);
    
            //Chaves do array de variaveis
            $keys = array_keys($vars);
    
            //mapeio o array
            $keys = array_map(function($item){
                return '{{'.$item.'}}';
            }, $keys);
    
            return str_replace($keys,array_values($vars),$contentView);
    
        }
    
    }
    
    
    ?>

    A pagina Home.php:

    <?php
    
    namespace App\Controller\Pages;
    
    use \App\Utils\View;
    
    class Home extends Page{
    
        /**
             * Metodo responsavel por retornar o conteúdo (view) da nossa home
             * @return string
             */
    
        public static function getHome() {
    
            $content = View::render('pages/home', [
                'name' => 'LucasDevLike',
                'description' => 'aprendendo php e mvc',
                'link' => 'https://likedesenvolvimento.com.br',
                'site' => 'likedesenvolvimento.com.br'
            ]);
            //Retorna a view da pagina
            return parent::getPage('Like Desenvolvimento - MVC', $content);
    
        }
    
        
    }
    
    ?>

     

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.