ホームページ >バックエンド開発 >PHPチュートリアル >手書きPHP APIフレームワーク(1) PSR仕様
この記事は、PHP に関する関連知識を提供します。主にコーディング標準について説明します。また、開発中に標準に従うよう努めることをお勧めします。興味のある友人は一緒に見てみると良いでしょう。そうなることを願っています。みんな助けてくれます。
これが、あなたのフレームワークを迅速に構築するのに役立つことを願っています仕事や勉強に何らかのメリットをもたらす可能性があります。助けとインスピレーションを求めに来てください。
PSR仕様
composerの使用法
API インターフェイス フレームワークを迅速に構築
もちろん、私自身の仕事から、多くの PHP プログラマー、特にジュニア プログラマーは、PHP にそのような仕様があることを知らないことがわかりました。
PSR とは何ですか?PSR を紹介する前に、この仕様を策定した組織である PHP-FIG を紹介する必要があります。正式名称は PHP Framework Interoperability です。 組織のメンバーは仕様を策定し、独自のプロジェクトに実装します。公式の組織ではありませんが、CakePHP、Composer、Drupal、PEAR、Slim、Yii フレームワーク、Zend などのほとんどの PHP コミュニティ プロジェクトを代表しています。フレームワークが待機します。そして、ますます多くのプロジェクトがこの標準に参加し、準拠しています。
PSR プロジェクトの目的は、フレームワーク作成者またはフレームワークの代表者間の議論を通じて、制限レベルが最も低いコラボレーション標準を開発することです。各フレームワークは、エンジニアがより適切に連携できるように、統一されたコーディング標準に従っています。
これまでに公式サイトに掲載されているアイテムは20点ですが、ドラフト中やボツになったものを除くと以下の13点となります。
これらの仕様を見てみましょう:
PHP コード ファイルは
PHP コード ファイルは BOM なしで UTF-8 でエンコードする必要があります最初にデモを見てみましょう: <?php
declare(strict_types=1);
namespace Vendor\Package;
use Vendor\Package\{ClassA as A, ClassB, ClassC as C};
use Vendor\Package\SomeNamespace\ClassD as D;
use function Vendor\Package\{functionA, functionB, functionC};
use const Vendor\Package\{ConstantA, ConstantB, ConstantC};
class Foo extends Bar implements FooInterface
{
public function sampleFunction(int $a, int $b = null): array
{
if ($a === $b) {
bar();
} elseif ($a > $b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
}
final public static function bar()
{
// method body
}
}
控制结构关键词后必须有一个空格。 左括号 ( 后一定不能有空格。 右括号 ) 前也一定不能有空格。 右括号 ) 与开始花括号 { 间一定有一个空格。 结构体主体一定要有一次缩进。 结束花括号 } 一定在结构体主体后单独成行。复制代码
# ファイル パスから対応するクラスを自動的にロードするための関連仕様については、この仕様は相互運用可能であり、補足として使用できます。さらに、この PSR には、自動ロードされたクラスに対応するファイル ストレージ パスの仕様も含まれます。
ここでの「クラス」とは、すべてのクラス、インターフェイス、特性の再利用可能なコード ブロック、およびその他の同様の構造を指します。
#完全なクラス名は次の構造にする必要があります:\(\)*\
には 1 つ以上のサブ名前空間を持つことができます;
##完全なクラス名完全なクラス名のどの部分のアンダースコアにも特別な意味はありません;
#完全なクラス名 は、任意の大文字と小文字で構成できます。
でなければなりません 大文字と小文字が区別されます。
一致する必要があり、その中の名前空間区切り文字がディレクトリ区切り文字として使用されます。
.php が付いた対応するファイルと同じ名前でなければなりません。
すべき 戻り値があります。 #例
名前空間プレフィックス
#\Acme\Log\Writer\File_Writer | Acme\Log\Writer | ||
---|---|---|---|
\Aura\Web\Response\Status | Aura\Web | /path/to/aura-web/src/ | |
\Symfony\Core \ Request | Symfony\Core | ./vendor/Symfony/Core/ | |
\Zend\Acl | Zend | /usr/includes/Zend/ | /usr/includes/Zend/Acl.php |
#当面は、よく使われるこの 3 つの仕様のみを紹介します。 | クリックして最新の仕様提案を表示します |
PHP ビデオ チュートリアル
」以上が手書きPHP APIフレームワーク(1) PSR仕様の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。