2017-03-20 13 views
0

これまでのところ多くの質問と回答が見つかりませんでしたので、初心者としてPHPとSlimフレームワークを学ぶ際に助けになると思います。それはかなり簡単です(私は思う)。Slim Frameworkを使用してページをルーティングするPHP

私はabout.phpという別のページに私のホームページを送りたいと思っています。私はベンダーのフォルダにインストールされているSlim/Slimフレームワークを使用しています。

<?php 

require '/vendor/autoload.php'; 

$app = new \Slim\Slim(); 

$app->get('/', function() use($app){ 
    $app->render('about.php'); 
}); 

$app->run(); 

?> 

は、私も存在しないabout.phpファイルを、持っている:そして、私は次のコードでindex.phpファイルを持っています。

これは私のcomposer.jsonファイルに現在何です:

私はMAMPを実行すると(セットアップ、私が働いているプロジェクトにアクセスするための)ページを見て、それが空白だ
"require": { 
    "monolog/monolog": "^1.22", 
    "slim/slim": "^3.7", 
    "twig/twig": "^1.32", 
    "slim/views": "^0.1.3" 
    } 

。誰かが私が間違っていることを理解するのを助けることができますか?

私はその後、(必要声明から主要な「/」を除去し、エラーを表示するための行を追加)これを実行してきた、そしてそれは500エラーが表示さ

<?php 
ini_set('display_errors', 1); 
require 'vendor/autoload.php'; 

$app = new \Slim\Slim(); 

$view = $app->view(); 
$view->parserOptions = array(
'debug' => true 

$app->get('/', function() use($app){ 
    $app->render('about.php'); 
}); 

$app->run(); 

?> 
+0

Slim PhpRendererをインスタンス化していますか? – Rob

+0

@rob、私はSlim PhpRendererをインスタンス化していません。そのファイルはSlim/SlimまたはSlim/Viewsのベンダフォルダにありません。別のパッケージを「必要とする」必要がありますか? (私は初心者でもあるので、PHPについて話す方法も学びます)。 –

+0

plsファイルの先頭に 'ini_set( 'display_errors'、1);を追加して、エラーがあるかどうかを確認します。おそらくrequire文の先頭のスラッシュを削除しようとします。ルートから追加しようとするだろう – danopz

答えて

0

私は不明確だ場合about.phpをSlimアプリケーションとは別にするかどうかを指定します。

誰かがhttp://example.com/に行く場合、ブラウザのURLをhttp://example.com/about.phpに変更しますか?about.phpは、index.phpと同じディレクトリにある完全に独立したPHPファイルです。

あなたは、あなたがリダイレクトする必要がある場合:

$app->get('/', function ($request, $response) { 
    return $response->withRedirect('/about.php'); 
}); 

より通常、スリムにルーティングするために使用して、アプリケーションでこのような状況のすべてのページが表示され、あなたは内.phpは表示されませんURL。これは、ブラウザのアドレスバーの実際のURLに関係なく、私たちのアプリは常にindex.phpを実行するためです。この状況で

は、あなたはおそらくまだリダイレクトだろうが、 .phpなし:

$app->get('/', function ($request, $response) { 
    return $response->withRedirect('/about'); 
}); 

また、それ以外のスリム何をすべきかわからないだろう​​のハンドラが必要になります

$app->get('/about', function ($request, $response) { 
    return $response->write("This is my about page"); 
}); 

実際にHTMLをハンドラに直接書くのではありません。レンダラーを使用します。 SlimプロジェクトにはPhpViewとTwigViewの2つがあります。 Skeleton applicationは、PhpViewのバージョンの仕組みを示しています。また、ドキュメント内のtutorialが役に立つかもしれません。

最後に、500が表示されたら、PHPエラーが発生します。これを見つける最も簡単な方法は、php.iniの設定error_reportingE_ALLに、display_errorsOnに設定されていることを確認することです。

すでにご存じのように、Slim 3のメインクラスはAppです。また、使用したスリム内の詳細なエラーが表示を有効にすることができます

$app = new Slim\App(['settings' => ['displayErrorDetails' => true]]); 

ここでも、通常我々は、スケルトンアプリケーションに示すように、この設定情報を含む別のsettings.phpファイルを持っています。

+0

これはすばらしい返答です。@ Rob、とても感謝してくれてありがとうRob。この問題の修正を手伝ってくれました。 –

関連する問題