{"action":"created","issue":{"url":"https://api.github.com/repos/dai5t/08_32_toida_daigo/issues/1","repository_url":"https://api.github.com/repos/dai5t/08_32_toida_daigo","labels_url":"https://api.github.com/repos/dai5t/08_32_toida_daigo/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/dai5t/08_32_toida_daigo/issues/1/comments","events_url":"https://api.github.com/repos/dai5t/08_32_toida_daigo/issues/1/events","html_url":"https://github.com/dai5t/08_32_toida_daigo/issues/1","id":294164775,"number":1,"title":"第8回課題コメント","user":{"login":"kefi3104","id":3159281,"avatar_url":"https://avatars0.githubusercontent.com/u/3159281?v=4","gravatar_id":"","url":"https://api.github.com/users/kefi3104","html_url":"https://github.com/kefi3104","followers_url":"https://api.github.com/users/kefi3104/followers","following_url":"https://api.github.com/users/kefi3104/following{/other_user}","gists_url":"https://api.github.com/users/kefi3104/gists{/gist_id}","starred_url":"https://api.github.com/users/kefi3104/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kefi3104/subscriptions","organizations_url":"https://api.github.com/users/kefi3104/orgs","repos_url":"https://api.github.com/users/kefi3104/repos","events_url":"https://api.github.com/users/kefi3104/events{/privacy}","received_events_url":"https://api.github.com/users/kefi3104/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-02-04T02:52:07Z","updated_at":"2018-02-04T05:29:57Z","closed_at":null,"author_association":"NONE","body":"お疲れ様です。チューターの岸です。\r\n\r\nフレームワークっぽく実装されていて素晴らしいですね！\r\n\r\n1つ気になったのはパスの管理です。\r\n\r\n`$_SERVER['DOCUMENT_ROOT']`を使っていると、サーバー内でのディレクトリ構造に変更があったときに変更が大変になるので、どこかでパスの変数を定義してincludeあげると良いと思います。\r\n\r\nつまり、\r\n```php\r\n$root_path = $_SERVER['DOCUMENT_ROOT'] . '/kadai08';\r\n```\r\n```html\r\n<link rel=\"stylesheet\" href=\"<?php echo($root_path) ?>/style.css\">\r\n```\r\nなどといった形でパスをの変数を定義して使い回せば、パスの変更が非常に楽になります。\r\n\r\nあと、phpでは`dirname(__FILE__)`を使うと相対パスで書きやすいとのことですので、相対パスのほうが書きやすいときはこちらをうまく使うとよろしいかと思います。\r\n\r\nつまり、\r\n```php\r\n require_once dirname(__FILE__).'/../../lib/functions.php';\r\n```\r\nなどといった書き方ができるようになります。\r\n\r\n一度試してみてください。\r\n"},"comment":{"url":"https://api.github.com/repos/dai5t/08_32_toida_daigo/issues/comments/362882308","html_url":"https://github.com/dai5t/08_32_toida_daigo/issues/1#issuecomment-362882308","issue_url":"https://api.github.com/repos/dai5t/08_32_toida_daigo/issues/1","id":362882308,"user":{"login":"dai5t","id":16668547,"avatar_url":"https://avatars1.githubusercontent.com/u/16668547?v=4","gravatar_id":"","url":"https://api.github.com/users/dai5t","html_url":"https://github.com/dai5t","followers_url":"https://api.github.com/users/dai5t/followers","following_url":"https://api.github.com/users/dai5t/following{/other_user}","gists_url":"https://api.github.com/users/dai5t/gists{/gist_id}","starred_url":"https://api.github.com/users/dai5t/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dai5t/subscriptions","organizations_url":"https://api.github.com/users/dai5t/orgs","repos_url":"https://api.github.com/users/dai5t/repos","events_url":"https://api.github.com/users/dai5t/events{/privacy}","received_events_url":"https://api.github.com/users/dai5t/received_events","type":"User","site_admin":false},"created_at":"2018-02-04T05:29:57Z","updated_at":"2018-02-04T05:29:57Z","author_association":"OWNER","body":"@kefi3104 \r\n確かにそうですね。保守の観点でもおっしゃる通りです。\r\nただ一点。$_SERVER['DOCUMENT_ROOT']か$_SERVER['HTTP_HOST']でのパス管理について。\r\n私自身、サーバ内のディレクトリ構成がhtmlを見たときにわかってしまうのは、あまり気持ちの良いものではないと感じたので、\r\n\r\n`$_SERVER['HTTP_HOST']`\r\n\r\nを使ったドメイン名での絶対パスで、統一的に管理したかったのですが、うまく動きませんでした。\r\n又、絶対パスにこだわったのは、正直相対パスに比べて、問題が起こりにくそうな感じがしたからです。\r\n\r\n今回の課題に関して言えば、\r\nhrefやsrcなどの属性でパス管理を行うときには、\r\n`<link rel=\"stylesheet\" href=\"http://<?php echo($_SERVER['HTTP_HOST']); ?>/style.css\">`\r\n`<script src=\"<?php $_SERVER['HTTP_HOST']; ?>/js/script.js\"></script>`\r\n\r\n※自分の環境では、hrefに\r\nスキーム部分である`http://`を記述しないとうまく画面が反映されなかったりしたので…。\r\n\r\nパーツやヘルバー（functions.php）、config.phpなどphpのインクルードは\r\n`require_once $_SERVER['DOCUMENT_ROOT'] . '/config/config.php';`\r\n\r\nとするように、意識づけていました。\r\n\r\n\r\nただ、岸さんのおっしゃるように、\r\n\r\n`$root_path = $_SERVER['DOCUMENT_ROOT'] . '/kadai08';`\r\n`<link rel=\"stylesheet\" href=\"<?php echo($root_path) ?>/style.css\">`\r\n\r\nなどと、$_SERVER['DOCUMENT_ROOT']で統一できるのであれば、早速、試したいと思います。\r\n相対パスでの管理もやってみたいと思います。\r\n\r\n反復して覚えるようなものは、正しいやり方をはじめに定着させた方が効率が良いので。\r\n\r\n＞疑問点に書かれていましたMVC設計についてですが、こちらでも調べておきますので、本件はGitHubでIssueを立て情報集めていくのはいかがでしょうか？\r\n\r\nそれは良い提案だと思います。\r\n早速、Issueを立ててみます。特に、理解したい部分というのは、ルーティングですね。今回の場合も露骨にディレクトリ構成がurlに出てしまうので。\r\nおそらくpublicのようなディレクトリの中にviewファイルを格納して、それをコントローラーがブリッジになってモデルと紐付けるんでしょうけど。\r\n現状は、出入力と処理の部分を別のディレクトリで管理しているに過ぎず、一つのファイルでcontrollerとして成立しているわけではないすしね。\r\nモデルもバリデーション周りの処理をテーブルごとにクラス管理してやるイメージは、想像つくんですが…。\r\n\r\n正直、そんなことをやるなら、フレームワークを使ってしまえというのが、着地点のような気がしますが。\r\n両方を使えたらいいなと思っていたので、私もいくつか、ネット上で参考になりそうなページを見ていました。"}}
{"actor":{"display_login":"dai5t"}}