質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

922閲覧

PHP_FastRouteライブラリで別ファイルのクラスまたは、メソッドの呼び出し方

teaAI

総合スコア36

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/06/22 03:17

編集2019/06/22 03:31

【目的】

  1. FastRouteライブラリと生のPHPを用いてRESTAPIを作成したい
  2. FatRouteライブラリを用いて外部ファイルのクラスメソッドを実行したい

【環境】
・Web Server: Apache
・PHP : PHP 7.2

【現状わかっている事】

  1. .htaccessでフロントコントローラーの設定は行っており、documentRootに置いてあるindex.phpにアクセスを統一している事
  2. index.php内で定義されているメソッドはFastRouteライブラリのメソッドで呼び出しは可能な事

【ソース】

php

1//index.php 2 3require './vendor/autoload.php'; 4 5function route() 6{ 7 $base = '/'; 8 $handlers = function(FastRoute\RouteCollector $r) use($base) { 9 10 $r->addRoute('GET', $base, 'index'); 11 $r->addRoute('GET', $base.'about', 'about'); 12 $r->addRoute('GET', $base.'user/{name}', 'user'); 13 $r->addRoute('POST', $base.'charge', 'charge'); 14 }; 15 16 $dispatcher = FastRoute\cachedDispatcher($handlers, [ 17 'cacheFile' => __DIR__ . '/route.cache', 18 'cacheDisabled' => true 19 ]); 20 21 $uri = $_SERVER['REQUEST_URI']; 22 $method = $_SERVER['REQUEST_METHOD']; 23 $routeInfo = $dispatcher->dispatch($method, $uri); 24 25 switch ($routeInfo[0]) { 26 case FastRoute\Dispatcher::NOT_FOUND: 27 echo "ページが見つかりませんでした。\n"; 28 break; 29 case FastRoute\Dispatcher::METHOD_NOT_ALLOWED: 30 $allowedMethods = $routeInfo[1]; 31 echo "許可されない HTTP リクエストです。\n"; 32 break; 33 case FastRoute\Dispatcher::FOUND: 34 $handler = $routeInfo[1]; 35 $vars = $routeInfo[2]; 36 echo $handler($vars); 37 break; 38 } 39} 40 41route(); 42 43function index($vars) 44{ 45 return "トップページです。\n"; 46} 47 48function about($vars) 49{ 50 return "このサイトに関するページです。\n"; 51} 52 53function user($vars) 54{ 55 return "{$vars['name']} さん、こんにちは。\n"; 56} 57 58function charge($vars) 59{ 60 if (!isset($_POST['amount'])) { 61 return "金額が入力されていません。\n"; 62 } 63 if (500 > $_POST['amount']) { 64 return "寄付金は500円以上からお願いします。\n"; 65 } 66 67 return "寄付していただきありがとうございました。\n"; 68} 69 70// EX. http.example.com/ のアクセスで "トップページです"が返る事を確認

何かサンプルのサイトや知見があれば、教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問