2016-03-15 61 views
0

完整Noob。我试图学习MVC。阅读本教程:https://www.youtube.com/watch?v=WRgHBu3msA4&index=4&list=PLfdtiltiRHWGXVHXX09fxXDi-DqInchFDPHP7 MVC Echo不工作 - Mamp

我的回声未在屏幕上打印。

这里是我的代码(99%相同的教程上面) 文件夹结构 应用 -controllers -home.php -core -App.php -Controller.php -models -views - 的init.php 公共 -index.php -CSS

的index.php

<?php 
require_once '../app/init.php'; 

$app = new App; 

的init.php

<?php 

require_once 'core/App.php'; 
require_once 'core/Controller.php'; 

App.php

<?php 

class App 
{ 
    protected $controller ='home'; 
    protected $method = 'index'; 

    protected $params = []; 
    public function _construct() 
    { 
     //$this->parseUrl(); 
     echo 'hi'; 
    } 

    public function parseUrl() 
    { 
     if(isset($_Get['url'])){ 
      echo $_Get['url']; 

     } 
    } 
} 

Controller.php这样在PHP

<?php 

class Controller 
{ 

} 

home.php

<?php 
class Home extends Controller 
{ 
    public function index() 
    { 
    echo 'home/index' 
    } 
} 
+0

你必须使用双下划线的构造函数'__construct' – Philipp

+0

这将让你失望'$ _GET'并可能'回声“家/ index''没有致闭幕词。 –

+0

http://php.net/manual/en/function.error-reporting.php –

回答

0

魔术方法(和构造函数)有t o用双下划线声明。另外,他们不是引擎认可的。所以,你有你的App类改成这样:

<?php 

class App 
{ 
    // ... 

    public function __construct() // !important: double underscore! 
    { 
     echo 'hi'; 
    } 

    // ... 

} 
+0

感谢@Philipp!双下划线工作。 –

+0

'$ _Get'无法看到这将如何通过@LukeTrout工作,如果这真的是你正在使用的。 –

+0

当他们把你放在*“la la la,我没有听到你”的模式时,你会喜欢它。 –