Basit bir PHP MVC oluşturma - View genel değişkenleri ortaya çıkarmak için en iyi yolu nedir?

0 Cevap php

Ben direği esinlenerek PHP için bir asgari MVC koyarak oldum. Benim kontrolörleri şöyle:

<?php
defined('__CORE__') or die('no direct access');

class Demo extends BaseController
{
    public function hello($args)
    {
        return parent::render('hello_tmpl', array('foo' => 'bar'));
    }
}

?>

<?php
defined('__CORE__') or die('no direct access');

class BaseController
{
    public function render($template, $vars=FALSE)
    {
        // Load up some global variables to put into the template's scope
        global $map;

        if ($vars !== FALSE)
            extract($vars);

        // Load up the template file's contents and save to the $_body variable
        // This variable will be utilized in base.html
        ob_start();
        include VIEW . '/' . $template . '.phtml';

        $_body = ob_get_contents();
        ob_end_clean();

        require_once(VIEW . '/base.php');
    }
}

?>

Ne ile sorun yaşıyorum Görünümü küresel değişkenleri ortaya çıkarmak için güzel bir yol ile geliyor. $map başka bir dosyada tanımlanmış Routes mapper. Bu yüzden $map->url_for('home_page') kullanabileceği ben bu görünümü ve Kontrolörleri maruz istiyorum.

Bunu yapmak için düzgün bir yolu nedir? İdeal olarak, BaseController yer almak istiyorum bu yüzden gibi bir şey yapabilirsiniz:

public function hellp($args)
{
    $home_page = parent::$map->url_for();
}

Yanı sıra adlı işletmeye $map erişme.

0 Cevap