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

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

ただいまの
回答率

90.37%

  • PHP

    22512questions

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

パーフェクトPHPの8章のミニブログのエラー解決について

解決済

回答 7

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,802

NaojirouHisada

score 52

現在 パーフェクトPHPを通して、 PHPを学んでいます。

そこで、 7章で、フレームワークの土台を作成しました。 miniblogというディレクトリの配下に、 core , web , models , controllers , viewsというディレクトリがあります。

8章では実際にミニブログの実装を行うのですが、 その際に、miniblogディレクトリ配下に、MiniBlogApplication.phpファイルを作成し、そのファイルに、coreのApplication.phpファイルの内容をextendsさせるというのがありました。 MiniBlogApplication.phpのソースコードはこれです。

<?php


class MiniBlogApplication extends Application
{
    protected $login_action = array('account' , 'signin');

    public function getRootDir()
    {
        return dirname(__FILE__);
    }

    protected function registerRoutes()
    {
        return array(
        );
    }

    protected function configure()
    {
        $this->db_manager->connect( 'master' , array(
            'dsn'        => 'mysql:dbname=mini_blog;host=localhost',
            'user'        => 'root',
            'password'    => '',
        ) );
    }
}

そのMiniBlogApplication.phpファイルを、webディレクトリ配下のindex.phpでrequireして使用するということでrequireしてみた結果、

Fatal error: Class 'Application' not found in /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/MiniBlogApplication.php on line 5

このようなエラーが発生しました。

そのため、 パーフェクトPHPのサンプルコード確認して、デバックし、再度index.phpを開いてみましたが、このエラーが消えません。

どなたか解決方法を教えていただけないでしょうか? よろしくお願いします。

ちなみに、 miniblog/Core/Application.phpのソースコードはこれです。

<?php

abstract class Application
{
    protected $debug = false;
    protected $request;
    protected $response;
    protected $session;
    protected $db_manager;
    protected $login_action = array();

    public function __construct($debug = false )
    {
        $this->setDebugMode($debug);
        $this->initialize();
        $this->configure();
    }

    protected function setDebugMode($debug)
    {
        if ( $debug){
            $this->debug = true;
            ini_set('display_errors' , 1 );
            error_reporting(-1);
        } else {
            $this->debug = false;
            ini_set( 'display_errors' , 0 );
        }
    }

    protected function initialize()
    {
        $this->request = new Request();
        $this->response = new Response();
        $this->session = new Session();
        $this->db_manager = new DbManager();
        $this->router = new Router ( $this->registerRoutes() );
    }

    protected function configure()
    {
    }

    abstract public function getRootDir();

    abstract protected function registerRoutes();

    public function isDebugMode()
    {
        return $this->debug;
    }

    public function getRequest()
    {
        return $this->request;
    }

    public function gerResponse()
    {
        return $this->response;
    }

    public function getSession()
    {
        return $this->session;
    }

    public function getDbManager()
    {
        return $this->db_manager;
    }

    public function getControllerDir()
    {
        return $this->getRootDir() . '/controllers';
    }

    public function getViewDir()
    {
        return $this->getRootDir() . '/views';
    }

    public function getModelDir()
    {
        return $this->getRootDir() . '/models';
    }

    public function getWebDir()
    {
        return $this->getRootDir() . '/web';
    }

    public function run()
    {


        try{
            $params = $this->router->resolve($this->request->getPathInfo() );
            if ( $params === false){
                throw new HttpNotFoundException( 'No route found for ' . $this->request->getPathInfo() );
            }

            $controller = $params['controller'];
            $action = $params['action'];

            $this->runAction($controller,$action,$params);


        }catch (HttpNotFoundException $e){
            $this->render404Page($e);
        } catch (UnauthorizedActionException $e){
            list($controller , $action) = $this->login_action;
            $this->runAction($controller, $action);
        }

        $this->response->send();
    }


    public function runAction($controller_name , $action , $params = array() )
    {
        $controller_class = ucfirst($controller_name) . 'Controller';

        $controller = $this->findController($controller_class);
        if ($controller === false){
            throw new HttpNotFoundException( $controller_class . ' controller is not found . ' );
        }

        $content = $controller->run($action , $params);

        $this->response->setContent($content);
    }

    protected function findController($controller_class)
    {
        if ( !class_exists($controller_class) ){
            $controller_file = $this->getControllerDir() . '/' . $controller_class . '.php';

            if ( !is_readable($controller_file) ){
                return false;
            } else {
                require_once $controller_file;

                if ( !class_exists($controller_class) ){
                    return false;
                }
            }
        }

        return new $controller_class($this);
    }

    protected function render404Page($e)
    {
        $this->response->setStatusCode(404 , 'Not Found');
        $message = $this->isDebugMode() ? $e->getMessage() : 'Page not found.';
        $message = htmlspecialchars($message , ENT_QUOTES, 'UTF-8');

        $this->response->setContent( <<<EOF
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>404</title>
</head>
<body>
    {$message}
</body>
</html>
EOF
        );
    }

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • afroscript.10

    2015/12/15 16:27 編集

    (質問の内容に直接関係ないので、恐縮ですが、)ソースコード部分を```で囲むとシンタックスハイライトになって見やすくなりますのでぜひ…!!
    ```
    ソースコード
    ```
    って感じです!

    キャンセル

回答 7

checkベストアンサー

+1

/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core/ClassLoader.php のソースを見せていただけますか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/16 18:16

    これがClassLoader.phpのソースコードです。
    ```
    <?php

    class ClassLoader
    {
    protected $dirs;

    public function register()
    {
    spl_autoload_register(array($this,'loadClass') );
    }

    public function registerDir($dir)
    {
    $this->dirs[] = $dir;
    }

    public function loadClass($class)
    {
    foreach ($this->dirs as $dir){
    $file = $dir . '/' . $class > '.php';
    if (is_readable($file) ){
    require $file;

    return;
    }
    }
    }
    }
    ```

    キャンセル

  • 2015/12/16 18:40

    $file = $dir . '/' . $class > '.php';
    のところ
    $file = $dir . '/' . $class . '.php';
    では?

    キャンセル

  • 2015/12/17 10:04

    恐らくそうかと思われます。
    そのため class がちゃんと load されていないんでしょうね。

    キャンセル

  • 2015/12/17 12:00

    お見事でした。

    キャンセル

  • 2015/12/17 15:16

    hyper-drums-koさん、jincoさんありがとうございます(^^)
    上記をデバックした結果、
    以前のようなエラーはでませんでした!
    本当にありがとうございます(^^)

    もしよければなのですが、
    次にこのようなエラーがでており、
    ```
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1049] Unknown database 'mini_blog'' in /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core/DbManager.php:25 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core/DbManager.php(25): PDO->__construct('mysql:dbname=mi...', 'root', '', Array) #1 /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/MiniBlogApplication.php(25): DbManager->connect('master', Array) #2 /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core/Application.php(16): MiniBlogApplication->configure() #3 /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/web/index_dev.php(6): Application->__construct(true) #4 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core/DbManager.php on line 25
    ```

    googleの翻訳を行うと、
    ```
    致命的なエラー:キャッチされない例外のメッセージと「PDOException'' SQLSTATE[HY000] [1049]未知のデータベース「/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core/DbManager.php:25スタックトレースでmini_blog'':#0/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core/DbManager.php(25):PDOは - > __( 'mysqlの:DBNAME= MI...'構築、「ルートを'、' '、アレイ)#1/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/MiniBlogApplication.php(25):DbManager->接続(「マスター」、アレイ)#2/アプリケーション/ XAMPPが/ xamppfiles/ htdocsに/ミニブログ.localhost/コア/ Application.php(16):MiniBlogApplication->のconfigure()#3/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/web/index_dev.php(6):アプリケーション - > __構築物(真)#4{メイン}25行目/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core/DbManager.phpでスロー
    ```とでていましたが、意味がよくわからいのです(^^;)

    DbManager.phpにエラーがあるということでしょうか(^^;)

    これがDbManager.phpのソースコードです。
    ```

    <?php

    class DbManager
    {
    protected $connections = array();

    protected $repository_connection_map = array();

    protected $repositories = array();

    public function connect($name,$params)
    {
    $params = array_merge(array(
    'dsn' => null,
    'user' => '',
    'password' => '',
    'options' => array(),
    ), $params);

    $con = new PDO(
    $params[ 'dsn' ],
    $params[ 'user' ],
    $params[ 'password' ],
    $params[ 'options']
    );

    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $this->connections[$name] = $con;
    }

    public function getConnection( $name = null)
    {
    if (is_null($name) ){
    return current( $this->connections);
    }

    return $this->connections[$name];
    }

    public function setRepositoryConnectionMap($repository_name , $name)
    {
    $this->repository_connection_map[$repository_name] = $name;
    }

    public function getConnectionForRepository($repository_name)
    {
    if (isset ( $this->repository_connection_map[$repository_name] ) ){
    $name = $this->repository_connection_map[$repository_name];
    $con = $this->getConnection($name);
    } else {
    $con = $this->getConnection();
    }

    return $con;
    }

    public function get($repository_name)
    {
    if ( !isset ($this->repositories[$repository_name] ) ){
    $repository_class = $repository_name . 'Repository';
    $con = $this->getConnectionForRepository($repository_name);

    $repository = new $repository_class($con);

    $this->repositories[$repository_name] = $repository;
    }

    return $this->repositories[$repository_name];
    }

    public function __destruct()
    {
    foreach ( $this->repositories as $repository){
    unset($repository);
    }

    foreach ($this->connections as $ $con){
    unset($con);
    }
    }
    }

    ```

    キャンセル

  • 2015/12/17 16:18

    まずは当初出ていたエラーが解決できたので、この回答をベストアンサーに選ぶ等されたほうがhyper-drums-koさんに失礼がないかと。。

    アプリ側で他にTypoなどでエラーがなければ、DBの設定を適切に行えば解決できると思います。
    新しいエラーだとMySQLのDBに接続できないようですがmini_blogというデータベースは作成されましたか?作成していなければcreate database mini_blog;としてからMiniBlogApplication.phpの下の方にある接続情報とMySQLの権限を合わせれば動くはずです。mysql grantとかflush privilegesとかでググると出てくると思います。
    もしかしたらphpmyadminでやったほうが楽かもしれないですね。

    キャンセル

  • 2015/12/17 18:01

    すみません(^^;)
    今後気をつけます(^^;;)

    アドバイスありがとうございます。
    やってみます!!

    キャンセル

  • 2015/12/17 18:06

    mini_blogのデータベースは作成しました(^^)

    キャンセル

+1

Fatal error: Class 'Application' not found

なので Application.php が見つからないようですね。

webディレクトリ配下のindex.phpでrequireして使用するということでrequireしてみた結果

上記の index.php も提示いただけますか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/13 18:16

    アドバイスありがとうございます!!
    これが、
    index.phpのソースコードです!!
    <?php

    require '../bootstrap.php';
    require '../MiniBlogApplication.php';

    $app = new MiniBlogApplication(true);
    $app->run();

    キャンセル

  • 2015/12/13 20:32

    hyper-drums-koさん、回答を拝見しました。「index.php で適切に require されていれば動作する」ということは、このbootstrap.phpのrequireとMiniBlogApplication.phpのrequireの間でapplication.phpをrequireする必要があるということでしょうか?

    キャンセル

  • 2015/12/14 11:18

    > このbootstrap.phpのrequireとMiniBlogApplication.phpのrequireの間でapplication.phpをrequireする必要があるということでしょうか?

    下記でも回答しましたが、bootstrap.php でフレームワークのクラスをロードしているので require する必要はないようですね。

    キャンセル

+1

アクセス時は MiniBlogApplication.php が直接呼ばれているわけではなく、webroot 配下の index.php が呼ばれてそこから Dispatch されているかと思いますので、index.php で適切に require されていれば動作するのではないかと思われます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/13 18:18

    アドバイスありがとうございます!!

    indexの方でapplication.phpをrequireするということでしょうか??

    キャンセル

  • 2015/12/14 11:16

    サンプルコードをダウンロードしてみました。

    bootstrap.php でフレームワークのクラスをロードしているので index.php では require する必要はないですね。

    以下の情報をいただけますか?
    ・Apache のドキュメントルート
    ・ブラウザからアクセスしたURL

    キャンセル

  • 2015/12/14 14:49

    これが、
    Apacheのドキュメントルートです。
    NameVirtualHost *:80

    <VirtualHost *:80>
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
    ServerName localhost
    </VirtualHost>

    <VirtualHost *:80>
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/web"
    ServerName mini-blog.localhost
    DirectoryIndex index.php index.html

    <Directory "/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/web">
    AllowOverride All
    Allow from All
    </Directory>
    </VirtualHost>

    ブラウザからは、
    http://mini-blog.localhost
    です。

    キャンセル

0

MiniBlogApplication.phpではapplication.phpをrequireする必要はないんですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/13 18:17

    MiniBlogApplication.php では、applicationクラスをextendsしてますが、
    書籍とサンプルコードでは、このようになっていましたけど、
    フレームワークを構築しているため必要なんだと思います(^^;)

    キャンセル

0

bootstrap.php でクラスが正しくロードされていないように思われます。

<?php

require 'core/ClassLoader.php';

$loader = new ClassLoader();
$loader->registerDir(dirname(__FILE__).'/core');
$loader->registerDir(dirname(__FILE__).'/models');
$loader->register();

となっており、bootstrap.php と同じ階層に「core」「models」ディレクトリが存在するでしょうか。

また、「core」ディレクトリ内に「Application.php」ファイルが存在しておりますでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/14 17:01

    はい!bootstrapと同じ階層にcoreとmodelsディレクトリがありまして、

    coreディレクトリ内に、Application.phpファイルはあります!!(^^)

    キャンセル

  • 2015/12/14 17:35

    > そこで、 7章で、フレームワークの土台を作成しました。 miniblogというディレクトリの配下に、 Core , web , models , controllers , viewsというディレクトリがあります。
    > ちなみに、 miniblog/Core/Application.phpのソースコードはこれです。
    先頭が「Core」と大文字になっているようですが、実際のディレクトリ名は小文字で「core」でしょうか?

    キャンセル

  • 2015/12/14 17:55

    ちゃんと「core」で作成しています(^^)
    紛らわしい書き方をしてしまい申し訳有りません(^^;)

    キャンセル

  • 2015/12/14 21:10

    ls -l /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost
    の結果はどうなりますか?

    キャンセル

  • 2015/12/15 01:24

    このようなエラーが出ました(^^;)
    Fatal error: Class 'Application' not found in /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/MiniBlogApplication.php on line 5

    キャンセル

  • 2015/12/15 04:56

    もしかするとファイル権限の問題かなと思ったので「ターミナル」を開いて上のコマンドを実行して確認してみてください。coreディレクトリの権限に問題がないようなら、下で中身を確認してみるとか。

    ls -l /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core

    キャンセル

  • 2015/12/15 11:51

    このような結果がでました(^^;)
    -rw-r--r--@ 1 hisadanaojirou staff 3451 12 5 15:33 Application.php
    -rw-r--r--@ 1 hisadanaojirou staff 392 11 27 16:07 ClassLoader.php
    -rw-r--r--@ 1 hisadanaojirou staff 2968 12 6 10:48 Controller.php
    -rw-r--r--@ 1 hisadanaojirou staff 1731 12 6 10:59 DbManager.php
    -rw-r--r--@ 1 hisadanaojirou staff 592 11 30 15:03 DbRepository.php
    -rw-r--r--@ 1 hisadanaojirou staff 58 12 6 11:01 HttpNotFoundException.php
    -rw-r--r--@ 1 hisadanaojirou staff 1442 11 9 20:33 Request.php
    -rw-r--r--@ 1 hisadanaojirou staff 682 11 10 11:21 Response.php
    -rw-r--r--@ 1 hisadanaojirou staff 954 12 6 11:10 Router.php
    -rw-r--r--@ 1 hisadanaojirou staff 976 12 6 11:13 Session.php
    -rw-r--r--@ 1 hisadanaojirou staff 63 12 6 11:14 UnauthorizedActionException.php
    -rw-r--r--@ 1 hisadanaojirou staff 899 12 6 11:16 View.php
    実行権限がないからでしょうか??

    キャンセル

  • 2015/12/15 12:03

    coreフォルダの権限も同じく↓なのでしょうか?

    -rw-r--r--@ 1 hisadanaojirou staff

    キャンセル

  • 2015/12/15 13:00

    ls -l /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost
    とターミナルに記述しましたら、このようにでました。

    -rw-r--r--@ 1 hisadanaojirou staff 3451 12 5 15:33 Application.php
    -rw-r--r--@ 1 hisadanaojirou staff 392 11 27 16:07 ClassLoader.php
    -rw-r--r--@ 1 hisadanaojirou staff 2968 12 6 10:48 Controller.php
    -rw-r--r--@ 1 hisadanaojirou staff 1731 12 6 10:59 DbManager.php
    -rw-r--r--@ 1 hisadanaojirou staff 592 11 30 15:03 DbRepository.php
    -rw-r--r--@ 1 hisadanaojirou staff 58 12 6 11:01 HttpNotFoundException.php
    -rw-r--r--@ 1 hisadanaojirou staff 1442 11 9 20:33 Request.php
    -rw-r--r--@ 1 hisadanaojirou staff 682 11 10 11:21 Response.php
    -rw-r--r--@ 1 hisadanaojirou staff 954 12 6 11:10 Router.php
    -rw-r--r--@ 1 hisadanaojirou staff 976 12 6 11:13 Session.php
    -rw-r--r--@ 1 hisadanaojirou staff 63 12 6 11:14 UnauthorizedActionException.php
    -rw-r--r--@ 1 hisadanaojirou staff 899 12 6 11:16 View.php
    hisadanaojirou-no-MacBook-Pro:~ hisadanaojirou$ ls -l /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost
    total 2600
    -rw-r--r--@ 1 hisadanaojirou staff 437 12 13 11:14 MiniBlogApplication.php
    -rw-r--r--@ 1 hisadanaojirou staff 190 11 28 13:51 bootstrap.php
    drwxr-xr-x 2 hisadanaojirou staff 68 11 8 10:08 controllers
    drwxr-xr-x 15 hisadanaojirou staff 510 12 6 11:16 core
    -rw-r--r--@ 1 hisadanaojirou staff 1317800 12 6 11:17 core 14.04.52
    drwxr-xr-x 2 hisadanaojirou staff 68 11 8 10:08 models
    drwxr-xr-x 2 hisadanaojirou staff 68 11 8 10:08 views
    drwxr-xr-x 6 hisadanaojirou staff 204 12 15 11:44 web
    -rw-r--r--@ 1 hisadanaojirou staff 129 11 28 13:53 名称未設定.txt

    キャンセル

  • 2015/12/16 16:53

    Application.phpの中身(最初の10行程度)はどうなっていますでしょうか?
    下記の行のクラス名は「Application」になっていますか?手元の環境で試したところ、ここを「Application2」等に変更すると同じエラーが出ました。

    abstract class Application

    coreフォルダのコピーを作成されているようなので、テスト中に変更してしまったというようなことはありませんか?

    キャンセル

  • 2015/12/16 18:20

    検索してみましたが、
    abstract class Applicationと記述していました(^^;)

    キャンセル

0

index.php を以下のように変更すると、何が表示されますか?

<?php

require '../bootstrap.php';
require '../MiniBlogApplication.php';

var_dump(get_included_files());

//$app = new MiniBlogApplication(true);
//$app->run();

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/15 11:45

    このようなエラーが出ました(^^;)
    Fatal error: Class 'Application' not found in /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/MiniBlogApplication.php on line 5

    キャンセル

  • 2015/12/15 11:55

    エラーが出るので

    ---
    $app = new MiniBlogApplication(true);
    $app->run();
    ---

    の行はコメントアウトしてください。

    キャンセル

  • 2015/12/15 15:01

    コメントアウトして行ってみましたが、
    やはり上記のエラーがでたままでした(^^;)

    キャンセル

  • 2015/12/15 18:30

    ごめんなさい。
    ---
    require '../MiniBlogApplication.php';
    ---
    の行もコメントアウトしてみてください。。。

    キャンセル

  • 2015/12/16 02:08

    返信が遅くなりまして、申し訳ございません(^^;)
    コメントアウトを行ってみた結果、
    このようにでました(^^)
    ```
    array(3) { [0]=> string(71) "/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/web/index.php" [1]=> string(71) "/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/bootstrap.php" [2]=> string(78) "/Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/core/ClassLoader.php" }
    ```

    キャンセル

0

もしかしてApplication.phpの58行目にあるgetResponse()メソッドがgerResponse()になってるのが原因じゃないですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/16 18:19

    ご指摘ありがとうございます。
    今現在デバックを行い再度XAMPPを起動してみましたが、
    やはり、
    Fatal error: Class 'Application' not found in /Applications/XAMPP/xamppfiles/htdocs/mini-blog.localhost/MiniBlogApplication.php on line 5
    のエラーが発生したままでした(^^;)

    キャンセル

同じタグがついた質問を見る

  • PHP

    22512questions

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