PHP7.3でZend Framework 2.5を動かしてみました。

Zend Framework,Web開発

若干古いのですが、ある新規案件の関係でPHP7.3でZend Framework 2.5を試しに動かしてみました。その( ..)φメモメモ備忘録です。なお環境はWindows11で、手っ取り早くXAMPPを使ってテスト環境を構築する事にしました。

インストール

XAMPPのインストール

XAMPP公式サイトの「その他のダウンロード」より過去バージョンのインストーラーを探します。

「XAMPP Windows」を選択します。

今回はとりあえず「7.3.33」を選びました。インストーラーをダウンロードします。

インストールは割愛します。(最初に警告がでますが「Yes」で大丈夫です。その後もデフォルトのまま「next」でインストールできます。)

追記:警告文の意味
念のため、最初に出てくる2つの警告文の翻訳も書いておきます。

■ 最初に出てくる警告文

It seems you have an antivirus running.In some cases, this may slow down or interfere the installation of the software.
Pliease visit the following link to learn more about this.
Continue with installation?
【翻訳】
アンチウイルスが実行されているようです。場合によっては、ソフトウェアのインストールが遅くなったり、干渉したりすることがあります。
詳細については、次のリンクにアクセスしてください。
インストールを続行しますか?

■ 次に出てくる警告文

Important! Because an activated User Account Control(UAC) on your system some funcitons of XAMPP are possibly restricted.
With UAC please avoid to install XAMPP to C:\Program Files(missing write permissions).
Or deactivate UAC with msconfig after this setup.
【翻訳】
重要!システムでアクティブ化されたユーザーアカウント制御(UAC)が原因で、XAMPPの一部の機能が制限されている可能性があります。
UACでは、XAMPPをC:\ Program Filesにインストールしないでください(書き込み権限がありません)。
または、この設定後にmsconfigを使用してUACを非アクティブ化します。

■結論

結論としては、Program Filesなどにインストールせずデフォルトのままなら問題ありませんw。これらに関して他の方も情報をアップされているので詳細はネットをググってみてください。

インストールが完了したら「c:\xampp\xampp-control.exe」起動します。

Apacheを起動します。文字が緑色になりボタンが「Start」から「Stop」に変化すれば起動終了です。

ブラウザを開いて「http://localhost/」にアクセスします。「Welcome to XAMPP for Windows 7.3.33」と表示されていれば無事インストール完了です。上部のPHPInfo等も確認しておくと良いでしょう。

Composerのインストール

公式サイトよりComposerもインストールします。「Composer-Setup.exe 」をダウンロードしてください。

こちらもインストールは割愛します。基本デフォルトのままで大丈夫です。

Zend Framework 2.5のインストール

先ほどインストールしたComposerからZend Framework 2.5をインストールします。ドキュメントルート「C:\xampp\htdocs」の下に任意のディレクトリを掘って、以下のコマンドを実行します。なお今回インストールしたのはZend Frameworkのスケルトンなので、ディレクトリ名も「zendSkeleton」にしました。composerコマンドの最後「^2.5」がバージョン指定となります。

> cd C:\xampp\htdocs
> mkdir zendSkeleton
> cd zendSkeleton
> composer create-project -sdev zendframework/skeleton-application . ^2.5

ブラウザから「http://localhost/zendSkeleton/public/」にアクセスします。無事、表示されま、、、Σ(・□・;)あれ???。なんか警告が出てる。。

あぁ、、そっか、PHP7.3だからか。。。えと、ググると色々情報が出てきますね。とりあえず私は以下の様に修正しました。

最初のWarningに対する対処

vendor\zendframework\zend-stdlib\src\ArrayObject.php の426行目

■修正前
continue;

■修正後
break;

次のNoticeに対する対処

vendor\zendframework\zend-view\src\Helper\HeadLink.php の403行目

■修正前
$attributes = compact('rel', 'type', 'href', 'media', 'conditionalStylesheet', 'extras');

■修正後
$attributes = compact('rel', 'type', 'href', 'media', 'conditionalStylesheet');
if ($args && is_array($args[0])) {
      $attributes['extras'] = array_shift($args);
}

※(参考元)https://stackoverflow.com/questions/54298826/compact-undefined-variable-in-zendframework

ほっ(;´・ω・)、無事エラーが消えました。(PHPは久しぶりなので対処法が正しいか若干自信無いですが、、、)

うる覚えですが、確かPHP7.3から色々変わったからなぁ。。ググると色々情報がでてきますね。最初から7.2にしとけば良かったかもorz..。まぁ、でも、これも勉強です。

「Hello Zend Framework」ページの追加

最後の仕上げとして、「Hello Zend Framework」ページを追加してみます。まずは「module\Application\src\Application\Controller」配下のIndexController.phpを参考に「HelloController.php」を新規作成します。

(新規作成)module\Application\src\Application\Controller\HelloController.php

<?php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class HelloController extends AbstractActionController
{
    public function zendFrameworkAction()
    {
        return new ViewModel();
    }
}

次に「module\Application\config」配下の「module.config.php」を編集して、先ほど作成したコントローラーを登録します。

(変更)module\Application\config\module.config.php (76行目~)

    'controllers' => array(
        'invokables' => array(
            'Application\Controller\Index' => Controller\IndexController::class, // <--行の最後に「,」を追加
            'Application\Controller\Hello' => Controller\HelloController::class  // <--ここを1行追加
        ),
    ),

最後に「module\Application\view\application\」配下に「hello」ディレクトリを新規で追加し、その配下に「zendFramework.phtml」を作成します。

(新規追加)module\Application\view\application\hello\zendFramework.phtml

	Applicationモジュールの
HelloControllerコントローラの
zendFrameworkActionアクションが呼ばれました。

ブラウザから以下のURLにアクセスしてみます。
http://localhost/zendSkeleton/public/application/hello/zendframework

やった~\(^o^)/。無事、表示できました♪
なおHelloページの表示部分に関して参考にした資料は「Zend Framework 2徹底解説」です。急いでいたので私はKindle版を購入いたしました。若干情報が古そうですが懇切丁寧に書かれているので、仕組みから理解されたい場合、非常に参考になる本だと思います。

以上、自分用の備忘録( ..)φメモメモでした。

Print Friendly, PDF & Email