Skip to content

shimanamisan/php-test-object

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

php-test-object

PHP Docker License

概要

PHP でオブジェクト指向について検証しているリポジトリです。

目的

オブジェクト指向の基本的な構文や動作などを学習することを目的としています。

公式ドキュメントを参考に、全てではないですが実際にコードを書きながら検証しました。 また、その内容を以下のブログ記事にまとめています。

使用方法

Docker と VS Code の拡張機能 Devcontainer を使用することを前提としています。

  1. 適当な作業ディレクトリで、以下のコマンドを実行します。
$ git clone git@github.com:shimanamisan/php-test-object.git
  1. コンテナ起動時に読み込まれる.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
  2. C:\Windows\System32\drivers\etc内のhostファイルに以下の内容を追記します。

    127.0.0.1   test.example.com
    127.0.0.1   admin.example.com

    これは、.envファイルで指定したVIRTUAL_HOSTのドメインです。

  3. php-test-objectを VS Code で開き、F1キーでコマンドパレット開き、開発コンテナを起動します。 スクリーンショット 2023-07-30 093122

  4. VS Code のターミナルを開き、起動したコンテナにアタッチされていることを確認します。 スクリーンショット 2023-07-30 095036

  5. 必要なライブラリをインストールします

    $ cd public
    $ composer install
  6. 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
);

About

オブジェクト指向について

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published