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

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

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

NetBeansは Java、HTML5、PHP、C/C++のアプリケーションのフレームワーク、もしくは統合開発環境(NetBeans IDE)の両方を指します

PHP

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

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

Q&A

解決済

1回答

1421閲覧

FuelPHPのControllerクラスが「Cannot redeclare class」のエラーで表示できず、困っています。

kamchatka

総合スコア14

NetBeans

NetBeansは Java、HTML5、PHP、C/C++のアプリケーションのフレームワーク、もしくは統合開発環境(NetBeans IDE)の両方を指します

PHP

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

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

0グッド

0クリップ

投稿2019/05/03 14:17

前提・実現したいこと

PHP(FuelPHP)の勉強の一環で、簡単なWebアプリを作ろうとしています。
FuelPHPのControllerクラスが正しく動作せず、困っています。

発生している問題・エラーメッセージ

「Cannot redeclare class Controller_Welcome_1(クラス名)」と言われます。

「クラスを再宣言することはできない」というメッセージに見えますが、
僕自身、「Controller_Welcome_1」クラスは一つしか作っていないので、何が起きているのかよくわかりません。

Controller_Welcome_1は、FuelPHPのパッケージにもともと入っていたContorollerファイルの「welcome.php」をコピーして作りました。

イメージ説明

該当のソースコード

fueltest.php

1<?php 2class Controller_Welcome_1 extends Controller 3{ 4 /** 5 * The basic welcome message 6 * 7 * @access public 8 * @return Response 9 */ 10 public function action_index() 11 { 12 return Response::forge(View::forge('welcome/index')); 13 } 14 15 public function action_fueltest() 16 { 17 return __DIR__; 18 } 19} 20

試したこと

下記画像の通り、呼びたいメソッド(fueltest())の一行目にデバッガを入れて、
http://localhost:8003/fuelphp/fueltest/fueltest
を叩きました。
ですが、デバッガを入れたところに到達する前に画面右手の緑色の所に到達し、そのままエラーメッセージ表示処理に進んでしまいます。

イメージ説明

補足情報(FW/ツールのバージョンなど)

php 5.6.40
Apache NetBeans IDE 11.0
MAMP 5.3
イメージ説明

FuelPHPのパッケージにもともと用意されていた、「welcome.php」クラスは正しく動きます。
welcome.php内に新たにメソッドを追加しても、正常に動作します。
自分でControllerファイルを新規作成し、クラスとメソッドを定義すると、
「Cannot redeclare class Controller_Welcome_1」
のエラーが出ます。

初歩の初歩で詰まってしまい、非常に困っているので、何卒ご回答よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

自己解決

クラス名を「Controller_Welcome_1」から「Controller_Fueltest」に変更したら、正常に動作しました。
なぜ「Controller_Welcome_1」だとダメなのか、よくわかりませんが、とりあえず解決しました。

投稿2019/05/03 15:06

kamchatka

総合スコア14

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

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

kamchatka

2019/05/04 15:14

今になって完全に原因がわかったのですが、phpファイル名と、クラス名の関係が原因でした。 コントローラのphpファイル名が「ABC.php」ならば、クラス名は、「Controller_Abc」になっていないと動かないようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問