ヘルパー関数を自動ロードするにはどうすればよいですか(クラス外)? composer.json
で、最初にロードする必要があるある種のbootstrap=ファイルを指定できますか?
いくつかのテストの後、関数を含むファイルに名前空間を追加し、composerこのファイルを自動ロードするように設定すると、必要なすべてのファイルでこの関数がロードされないように見えるという結論に達しました自動ロードパス。
合成するために、これはどこにでも関数を自動ロードします:
composer.json
"autoload": {
"files": [
"src/greetings.php"
]
}
src/greetings.php
<?php
if( ! function_exists('greetings') ) {
function greetings(string $firstname): string {
return "Howdy $firstname!";
}
}
?>
...
ただし、これにより、自動ロードのすべての要求で関数がロードされるわけではありません。
composer.json
"autoload": {
"files": [
"src/greetings.php"
]
}
src/greetings.php
<?php
namespace You;
if( ! function_exists('greetings') ) {
function greetings(string $firstname): string {
return "Howdy $firstname!";
}
}
?>
そして、次のようにuse function ...;
を使用して関数を呼び出します。
example/example-1.php
<?php
require( __DIR__ . '/../vendor/autoload.php' );
use function You\greetings;
greetings('Mark'); // "Howdy Mark!"
?>