PHP でオブジェクト指向について検証しているリポジトリです。
オブジェクト指向の基本的な構文や動作などを学習することを目的としています。
公式ドキュメントを参考に、全てではないですが実際にコードを書きながら検証しました。 また、その内容を以下のブログ記事にまとめています。
Docker と VS Code の拡張機能 Devcontainer を使用することを前提としています。
- 適当な作業ディレクトリで、以下のコマンドを実行します。
$ git clone git@github.com:shimanamisan/php-test-object.git
-
コンテナ起動時に読み込まれる.envファイルの設定
.devcontainer
ディレクトリ内の.env.example
をコピーし.env
へリネームします。以下はサンプルです。そのままコピペしても動作しますが、適宜設定を変更して下さい。
# apache VIRTUAL_HOST=test.example.com # mysql TIME_ZONE=Asia/Tokyo MYSQL_DATABASE=mysql_db MYSQL_USER=docker MYSQL_PASSWORD=docker MYSQL_ROOT_PASSWORD=rootpass # postgresql POSTGRES_DB=postgres_db POSTGRES_PASSWORD=rootpass # rootユーザーのパスワード # sqlserver # 使用許諾契約書の承諾を設定 ACCEPT_EULA=Y # SA ユーザーのパスワードを構成(パスワードポリシーを満たさないとコンテナが起動しない) MSSQL_SA_PASSWORD=Hn_Pgtech1234 # SQL Serverのエディションを指定(Enterprise、Standard、Web、Developer、Expresから選択 MSSQL_PID=Express # ロケーションを指定 MSSQL_LCID=1041 # 照合順序を指定 MSSQL_COLLATION=Japanese_CI_AS # phpmyadmin PMA_ARBITRARY=1 PMA_HOSTS=db-devcontainer-mysql-test-object PMA_USER=docker PMA_PASSWORD=docker VIRTUAL_HOST_PHPMYADMIN=admin.example.com
-
C:\Windows\System32\drivers\etc
内のhost
ファイルに以下の内容を追記します。127.0.0.1 test.example.com 127.0.0.1 admin.example.com
これは、
.env
ファイルで指定したVIRTUAL_HOST
のドメインです。 -
必要なライブラリをインストールします
$ cd public $ composer install
-
public/ObjectSample
ディレクトリ配下の php ファイルを実行します。$ cd ObjectSample # サンプルファイル $ php index.php # 抽象クラスや静的メンバーに関するファイル(データベースへ接続します) $ php sampleAbstract.php # クラス定数に関するファイル $ php sampleConst.php # インターフェースに関するファイル $ php sampleInterface.php
このリポジトリでは、Docker コンテナで、MySQL、PostgreSQL、SQLServer を起動しています。MySQL と PostgreSQL では、コンテナ起動時にusers
テーブルを作成するスクリプトを実行しています。
SQLServer では、コンテナ起動時はusers
テーブルが作成されていませんので、以下のSQLを実行してテーブルを作成してください。
直接コンテナ内に接続するか、DBeaverなどを使用して接続して以下のSQLを実行してください。
CREATE TABLE users (
id INT IDENTITY(1,1) PRIMARY KEY,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT GETDATE(),
updated_at DATETIME
);