ZendFrameworkはPHPで書かれたオープンソースフレームワークで、MVCアーキテクチャに基づいています。
この記事を読むことで、ZendFrameworkの基本的な概要、歴史、目的、そして今後の使用に関する不安を解消するための方法を理解することができます。
ZendFrameworkの基本概要を理解
ZendFrameworkの歴史と目的を把握
開発環境のセットアップ方法を習得
ZendFrameworkは、PHPベースのオープンソースフレームワークで、主にエンタープライズアプリケーションの開発を目的としています。その特徴として、モジュール化、再利用性、セキュリティ、パフォーマンスの最適化が挙げられます。
ZendFrameworkは2006年にZend Technologiesによって開発が開始され、PHPの標準フレームワークとして広く利用されてきました。ZendFrameworkの主な目的は、開発者が効率的に高品質なWebアプリケーションを構築できるようにすることです。
2019年にZendFrameworkはLaminasプロジェクトに移行され、現在はLaminasとして引き続き開発・サポートされています。LaminasはLinux Foundationによって管理され、セキュリティアップデートや新機能の追加が行われています。
ステップ1: Dockerをインストール
この記事を読むことで、Dockerを使ってZendFrameworkを簡単にセットアップし、開発環境を効率的に管理する方法を学ぶことができます。
この記事を読み終えることで、Dockerを使ってZendFrameworkの開発環境を構築し、効率的に管理する方法をマスターできます。これにより、開発作業がスムーズに進み、プロジェクトの品質と生産性が向上します。
この記事では、Dockerを使ってZendFrameworkの開発環境を構築する方法をステップバイステップで解説します。Dockerの基本概念から始め、ZendFrameworkを実行するためのDockerファイルの作成方法、コンテナの起動方法、効率的な環境管理のポイントまでを詳しく説明します。
Dockerは、アプリケーションを軽量なコンテナ内で実行するためのプラットフォームです。これにより、開発環境の一貫性を保ち、簡単にデプロイできるようになります。
主な利点:
まず、Dockerをインストールします。公式サイトからインストールパッケージをダウンロードし、インストール手順に従ってください。
mkdir zend-docker
cd zend-docker
FROM php:8.0-apache
# Apache設定とPHPモジュール
RUN apt-get update && apt-get install -y \
libpng-dev \
libzip-dev \
zip \
&& docker-php-ext-install pdo_mysql zip
# Composerのインストール
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# プロジェクトディレクトリ作成
RUN mkdir -p /var/www/html
# Apacheのドキュメントルートを設定
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
# プロジェクトディレクトリをコンテナにコピー
WORKDIR /var/www/html
version: '3.1'
services:
zend:
build: .
ports:
- "8080:80"
volumes:
- .:/var/www/html
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: zend
MYSQL_USER: zend
MYSQL_PASSWORD: zend
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: zend
MYSQL_USER: zend
MYSQL_PASSWORD: zend
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
services
セクションには、コンテナとして実行する各サービス(コンテナ)を定義します。この例では、zend
とdb
の2つのサービスを定義しています。
build: .
: Dockerfileが存在するディレクトリを指定します。ports: "8080:80"
: ホストのポート8080をコンテナのポート80にマッピングします。これにより、ホストマシンのhttp://localhost:8080
からZendアプリケーションにアクセスできます。volumes: .:/var/www/html
: ホストの現在のディレクトリをコンテナの/var/www/html
にマウントします。これにより、ホスト上のコード変更が即座にコンテナ内に反映されます。environment
: MySQLデータベースに接続するための環境変数を設定します。depends_on: db
: このサービスはdb
サービス(データベース)が起動した後に起動することを示します。image: mysql:5.7
: MySQL 5.7の公式イメージを使用します。environment
: MySQLデータベースの設定(ルートパスワード、データベース名、ユーザー名、ユーザーパスワード)を環境変数として設定します。volumes: db-data:/var/lib/mysql
: db-data
という名前のDockerボリュームをコンテナの/var/lib/mysql
にマウントします。これにより、データベースのデータが永続化されます。docker-compose run --rm zend composer create-project -sdev laminas/laminas-mvc-skeleton .
docker-compose up -d
今回、ubuntuにZendframeをセットアップすることにした。依存関係の問題があるため、composer ver 1 系ではなければセットアップできない。composer ver 1 は、php 8.0 に対応していないた、php7.4を新たにubuntuにインストールした。
作業フォルダとzendframeを展開するフォルダーを作成します。zendframeを空のフォルダにしか展開できないので、作業フォルダ(zend-docker) 内に src フォルダを作成します。
mkdir zend-docker
cd zend-docker
mkdir src
ubuntuにphp7.4をインストールします。
# 必要なパッケージをインストール
sudo apt update
sudo apt install software-properties-common
# ondrej/php PPA リポジトリを追加
sudo add-apt-repository ppa:ondrej/php
sudo apt update
# PHP 7.4 をインストール
sudo apt install php7.4
# PHP 拡張モジュールもインストール
sudo apt install php7.4-cli php7.4-fpm php7.4-mysql php7.4-xml php7.4-curl
# update-alternatives コマンドを使用して PHP のバージョンを設定
sudo update-alternatives --set php /usr/bin/php7.4
$ php -v
PHP 7.4.33 (cli) (built: Apr 11 2024 22:13:28) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
作業フォルダ(zend-docker)で、composer ver 1 をインストールします。
Composerバージョン1をインストールするには、Composerインストーラーをダウンロードして、特定のバージョンを指定してインストールします。
pwd
# /home/****/zend-docker
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --version=1.10.22
php -r "unlink('composer-setup.php');"
ローカル src フォルダに Zend Framework を展開します。作業フォルダ(zend-docker)で、インストールコマンドを実行します。
pwd
# /home/****/zend-docker
php composer.phar create-project zendframework/skeleton-application src
作業フォルダ(zend-docker) にdocker 関連ファイルを作成します。
touch docker-compose.yml
touch Dockerfile
version: '3.8'
services:
app:
build: .
ports:
- "3000:80"
volumes:
- ./src:/var/www/html
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: zend_db
MYSQL_USER: zend_user
MYSQL_PASSWORD: zend_password
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
# 基本となるイメージを指定
FROM php:7.4-cli
# 必要なパッケージをインストール
RUN apt-get update && apt-get install -y git unzip
# PHPの拡張をインストール
RUN docker-php-ext-install pdo pdo_mysql
# Composerをインストール
COPY --from=composer:1 /usr/bin/composer /usr/bin/composer
# 作業ディレクトリを設定
WORKDIR /var/www/html
# ポートを公開
EXPOSE 80
# コンテナ起動時に実行するコマンドを設定
CMD ["php", "-S", "0.0.0.0:80", "-t", "/var/www/html/public"]
docker-compose up -d --build
#停止
docker-compose down
http://localhost:3000 にアクセスすると Zend Framework のホームページが表示されました。
基本概要
歴史と目的
ZendFrameworkセットアップ