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

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

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

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

Zend Framework 2

Zend Framework 2は、PHP 5.3以上に対応している MVCフレームワークとコンポーネントライブラリーの集合です。

Q&A

解決済

1回答

1087閲覧

zendframework2.5 Unable to resolve service "Router" to a factory のエラー解決法

nezuko

総合スコア12

PHP

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

Zend Framework 2

Zend Framework 2は、PHP 5.3以上に対応している MVCフレームワークとコンポーネントライブラリーの集合です。

0グッド

0クリップ

投稿2019/07/31 04:48

編集2019/07/31 06:02

前提・実現したいこと

zendframework初心者です。

他の方がphp7.1、zendframework2.49で作成したものを、
php7.3、zendframework2.5に置き換えようとしています。

PHP7の上で Zend Framework 2.5 を動かす
こちらを参考に2.5をインストールし、スケルトンを動かして表示するところまでは出来ました。

そのスケルトンフォルダにver2.49で作成されたプロジェクトファイルをせっせと移したのですが、以下のエラーが出ています。

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

Fatal error: Uncaught Zend\ServiceManager\Exception\ServiceNotFoundException: Unable to resolve service "Router" to a factory; are you certain you provided it during configuration? in /var/www/ZendSkeletonApplication/vendor/zendframework/zend-servicemanager/src/ServiceManager.php on line 687

試したこと

modules.config.phpを確認してみましたが、以下の通りZend\Routerはロードされていました。

php

1<?php 2/** 3 * @link http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository 4 * @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com) 5 * @license http://framework.zend.com/license/new-bsd New BSD License 6 */ 7 8/** 9 * List of enabled modules for this application. 10 * 11 * This should be an array of module namespaces used in the application. 12 */ 13return [ 14 'Zend\ServiceManager\Di', 15 'Zend\Serializer', 16 'Zend\Paginator', 17 'Zend\Navigation', 18 'Zend\Mvc\I18n', 19 'Zend\Mvc\Console', 20 'Zend\Mail', 21 'Zend\Db', 22 'Zend\Cache', 23 'Zend\Mvc\Plugin\FilePrg', 24 'Zend\Mvc\Plugin\FlashMessenger', 25 'Zend\Mvc\Plugin\Identity', 26 'Zend\Mvc\Plugin\Prg', 27 'Zend\Session', 28 'Zend\Form', 29 'Zend\InputFilter', 30 'Zend\Filter', 31 'Zend\Hydrator', 32 'Zend\I18n', 33 'Zend\Router', 34 'Zend\Validator', 35 'Application', 36];

何が原因なのかすら検討がつきません…。

そもそもの問題ですが、2.49から2.5への移行方法としては正しいのでしょうか…?

わからないことだらけで大変恐縮ですが、何卒よろしくお願いいたします。

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

CentOS7
PHP 7.3.7
zendframework2.5

追記

すみません、今気づいたのですが、上記サイトの方法でインストールすると、2.5というより最新バージョンが入るんですね。確認したところ2.5ではなく3.03が入っていました。
https://framework.zend.com/downloads/archives
こちらに2.4までのアーカイブはありますが、2.5以降はcomposerでのインストールしかできないとのことなので、現在入手は不可能なのでしょうか??

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

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

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

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

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

guest

回答1

0

自己解決

解決しました。
良い方法なのか不明ですがメモ書きしておきます。

git cloneするときに、 -b オプションでブランチやタグを指定することで3以前のバージョンを落とせる。

git clone URL -b ブランチorタグ
  • ローカルのほうで、2.5のスケルトンをクローン

https://github.com/zendframework/ZendSkeletonApplication
ページ左側の「Branch:master」をクリックするとブランチやタグが表示されるので、そこから自分の環境に合わせたものを選択。

git clone https://github.com/zendframework/ZendSkeletonApplication.git -b release-2.5.0
  • zendframework2.5 をクローン

https://github.com/zendframework/zendframework.git
こちらも同様に。

git clone https://github.com/zendframework/zendframework.git -b release-2.5.3
  • スケルトンフォルダの中にzendframework2.5(おそらくフォルダ名はzendframeworkで落としてるはず)をまるまるコピーする

  • スケルトンフォルダでconposer.pharを入れる

curl -sS https://getcomposer.org/installer | php
  • zendframeworkをインストール
php composer.phar install

スケルトンフォルダをC:/xampp/htdocs/任意のフォルダ に入れてApache起動、localhost/任意のフォルダ/public でページ表示ができました。

で、↑の手順を、スケルトンフォルダではなく既にある2.49のプロジェクトフォルダ上で行った結果無事2.5にバージョンアップされました。

仕組みは正直わかっていません。
「なんかやってみたら出来ちゃった」っていう良くないパターンですね…。

投稿2019/08/01 09:56

nezuko

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問