2012-06-26 43 views
0

我想創建一個網站與Symfony 2.0,我遇到了一個問題,我看到從<?php $this->extend("...") ?>extend("...") ?>Symfony + PHP不工作

該網站可在http://symfony.toxic-productions.com/install/web/poshpaws/hello查看。

的控制器代碼:

<?php 
    namespace Acme\HelloBundle\Controller; 

    use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

    class HelloController extends Controller 
    { 
     public function indexAction($name) 
     { 
      //return $this->render('AcmeHelloBundle:Hello:index.html.twig', array('name' => $name)); 
      // render a PHP template instead 
      return $this->render('AcmeHelloBundle:Hello:index.html.php', array('name' => $name)); 
     } 
    } 
?> 

針對前端頁面的代碼(index.html.php)

<html> 
    <head> 
     <title>Poshpaws</title> 
     <?php 
      $view->extend('::base.html.php'); 
      echo($head); 
     ?> 
    </head> 
    <body> 
     <?php echo($body); ?> 
     <h1>This is just a page to say: Hello <?php echo $view->escape($name) ?>!</h1> 
    </body> 
</html> 
+0

它出現在服務器沒有安裝PHP或至少東西不能正常工作的時刻。如果您查看頁面的源代碼,您將看到'<?php'標籤,這意味着PHP根本不解析該文件,並且它將直接由Web服務器提供服務而不需要進行任何處理。你打電話給正確的文件嗎?對不起,我沒有使用Symfony,但你似乎直接調用視圖,我不認爲控制器正在調用。 – drew010

+0

如果你自己去看「toxic-productions.com」,PHP就是最好的安裝方式,那就是完整的PHP。不過,我會檢查確保所有內容都在VirtualHost中進行配置。 – JohnHoulderUK

+0

這可能是因爲處理所有請求的'.htaccess'文件不在正確的位置。它應該在'web'文件夾中。 – drew010

回答

0

.htaccess文件要麼不工作或不在正確的地方。確保它位於Web文件夾中。如果是,請確保您的虛擬主機允許您覆蓋Apache設置。如果是這樣,那麼運行php app/console router:通過SSH進行調試,並確保您的路由已正確定義。另外,您應該只將「web」設置爲目錄的根目錄,否則您會不必要地暴露某些安全風險。

在旁邊註釋...爲什麼PHP模板?對我而言,它並沒有強制將關注點分開,而且他們通常更難閱讀(無論如何,對我而言)。

+0

這正是我在製作網站時習慣的。我還將嘗試在另一個目錄中進行全新安裝,以查看它是否實際上是SuPHP再次播放。另外,我主持我自己的網站,所以我的域名的一切可以被覆蓋:) – JohnHoulderUK

1

我剛剛有同樣的問題。事實證明,我沒有在我的配置文件中啓用PHP模板引擎。 請確保您檢查從此站點的第一步: http://symfony.com/doc/current/cookbook/templating/PHP.html

+0

謝謝你,彼得。你給的鏈接對於在Symfony中使用PHP/twig非常有用。在這個文件** config.yml **中,您必須將引擎設置爲**'twig','php'**以便同時使用或使用其中一個來使用一個模板。非常感謝鏈接。 – webblover