モジュール¶
はじめに¶
本サイトにつきまして、【IT技術の知見】はじめに - 俺の技術ノート をご認識のほど宜しくお願いいたします。
01. 外部ファイルの読み出し¶
require_once() 関数による、クラス、非クラスの関数の読み出し¶
▼ require_once() 関数とは¶
外部ファイルとして定義したクラス、非クラスの関数を一度だけ読み込める。
動的な値は持たず、静的に読み込むことに注意。
ただし、チームの各エンジニアが好きなものを読み込んでいたら、スパゲッティコードになりかねない。
そこで、チームでの開発では、記述ルールを設けて、require_once() 関数で読み込んでよいものを決めておくとよい。
▼ クラスから関数をコール¶
PHP の場合の実装例
<?php
class Foo
{
const VALUE = "これは定数です。";
public function className(): string
{
return "foo関数です。";
}
}
PHP の場合の実装例
<?php
// 外部ファイル名を指定して、クラスを読み込む。
require_once("Foo.php");
class Bar
{
public function method(): void
{
$e1 = new Foo;
$e1->className();
}
}
▼ クラスから定数をコール¶
PHP の場合の実装例
<?php
// 外部ファイル名を指定して、クラスを読み込む。
require_once("Foo.php");
class Bar
{
public function method(): mixed
{
// Fooクラスの定数を出力。
return Foo::VALUE;
}
}
▼ 非クラスから関数をコール¶
PHP の場合の実装例
<?php
function printTest(): string {
return "test";
}
PHP の場合の実装例
<?php
// 外部ファイル名を指定して読み込む。
require_once ("printTestFunction.php");
printTest();
use によるクラスの読み出し¶
▼ use とは¶
Composer のオートロード機能を有効化したうえで、外部ファイルのクラスの namespace を use で指定するのみで、そのクラスのみを読み込める。
非クラスを読み込むことはできない。
動的な値は持たず、静的に読み込むことに注意。
ただし、チームの各エンジニアが好きなものを読み込んでいたら、スパゲッティコードになりかねない。
そこで、チームでの開発では、記述ルールを設けて、use で読み込んでよいものを決めておくとよい。
注意点として、composer のオートロードを使用しない場合、require() 関数と use の両方が必要である。
▼ 外部ファイルのクラスから関数をコール¶
クラスの namespace を use 文で指定する。
PHP の場合の実装例
<?php
// 名前空間を定義。
namespace Domain\Foo;
class Foo
{
// 定数を定義。
const VALUE = "これは定数です。";
public function method1(): string
{
return "foo関数です。";
}
}
PHP の場合の実装例
<?php
namespace Domain\Foo;
// namespaceを指定して、外部ファイルのクラスを読み込む。
use Domain\Foo;
class Bar
{
public function method2(): void
{
$e1 = new Foo;
$e1->method1();
}
}
▼ 外部ファイルのクラスから定数をコール¶
PHP の場合の実装例
<?php
namespace Domain\Foo;
// namespaceを指定して、外部ファイルのクラスを読み込む。
use Domain\Foo;
class Bar
{
public function method(): void
{
// Fooクラスの定数を出力。
echo Foo::VALUE;
}
}