ホームページ バックエンド開発 PHPチュートリアル 今からPHPを学ぶ際に注意すべきこと

今からPHPを学ぶ際に注意すべきこと

Jul 25, 2016 am 08:45 AM

php 正しい方法」を読んでください。この記事には多くの内容が含まれており、拡張することができます。ほとんどの用語と概念を知っておく必要があります。このグループの背後にある考え方は、プロジェクトの代表者がプロジェクト間の共通点について話し合い、協力する方法を見つけることです。前の記事で、同僚とのコミュニケーションの中で、PSR (PHP 標準勧告) について何度も言及しました。多くの人は、PSR はコーディング スタイルの標準化などの重要なことだけを行うだけだと考えていますが、実際にはそれをはるかに超えています。

PSR の一連の標準ドキュメントは、php-fig (PHP Framework Interop Group) によって起草され、投票されています。投票メンバーの中には、Laravel、Symfony、Yii などのいくつかの主流フレームワークや拡張機能の作者も含まれています。

公式ウェブサイトによると、この組織の目的は、何をすべきかを指示することではなく、いくつかの主流の枠組みの間で交渉し、相互に合意することです。ただし、これらのフレームワークと拡張機能は常に使用されると思います。

現在 PSR によって承認されている文書は 6 つあります:

0: 自動読み込み (主に名前空間のない PHP 5.3 より前のバージョン用) 1: コーディング仕様

2: コーディングスタイル推奨

3:ログ結果

4: 自動読み込みがより詳細に(名前空間が現れてから大きな変更があります)

7: HTTPメッセージインターフェース

現在ドラフト中(Draft) その中にはPSR-5(PHPDoc)があります標準)、PSR-6(キャッシュ)など5 と 6 はまだ投票されていないため、上記のリストには含まれていません。

基準は更新され続けるので、必ずしもすべてを遵守する必要はないかもしれませんが、これらの規約を勉強することも非常に有益であることがわかると思います。

Nobody in the group doesn't know you, as a programmer, how to build your application.

2.Composer

Composer は、PHP の依存関係管理のためのツールです。プロジェクトが依存するライブラリを宣言すると、それらを管理 (インストール/更新) します

Composer は Pear や Pecl とは異なり、拡張機能をインストールするために使用されるだけでなく、より重要なことに、実装を定義します。最新の PHP フレームワークの拡張機能管理。 node.js の npm や

Python

の pip に似ていますが、上記以上のことを行います。

composer の核心は、拡張機能の標準インストールとクラスの自動ロードを実装することです。 packagest.org プラットフォームを通じて、無数の拡張コンポーネントを簡単に導入できます。現在、よりよく知られている PHP 拡張機能は、composer を通じてインストールできます。この呼び出しで必要なのは、autoload.php ファイルをロードすることだけです。

Composer は spl_autoload_register メソッドを介して自動ロード メソッドを登録し、拡張クラスとファイルをロードします。 もちろん、composer はこのプロセス中に最適化も行いました。

PHP インポート ファイルは include と require を使用して実装する必要があることは誰もが知っていますが、これは実際には見た目が良くない書き方です。 PHP 5.3 は、ファイルのインポートとは関係のない名前空間を提供します。ただし、composer は PSR-4 (古いバージョンの PHP では PSR-0) を実装しています。これを使用すると、spl_autoload_register を呼び出して実装されたメソッドが呼び出されたときに必要なクラスをロードします。これも Python の import に似ていて美しいです。オンデマンド読み込みと遅延読み込みの役割を果たします。

3.php-cs-fixer

PSR-1 および PSR-2 ドキュメントで定義されている PHP コーディング標準に従う必要がある場合、PHP コーディング標準修正ツールはコード内のほとんどの問題を修正します。

このツールの機能は、PSR-1 および PSR-2 仕様に従ってコードをフォーマットすることであり、いくつかのオプションのコーディング スタイルは Symfony 仕様です。

実際、これは本来話す価値はありませんが、最近いくつかのオープンソース フレームワークで .php_cs ファイルを目にし、興味を持ち、さらに調査した結果、このプロジェクトについて知りました。

プロジェクトアドレス:https://github.com/FriendsOfPHP/PHP-CS-Fixer

具体的な使い方や設定方法はプロジェクトのホームページで紹介されています。この組織の名前も興味深いです: FriendsOfPHP。主要メンバーはおそらく Symfony プロジェクトのメンバーです。

コーディングスタイルの問題について心配する必要はないと考える人もいるかもしれません。プログラミングが単なる仕事ではないと考えると、部屋が汚くても食事や睡眠には影響しませんが、きれいなほうが快適に見えるのと同じです。他の人と協力したいのであれば、この問題はさらに重要です。

4.PsySH

ランタイム開発者コンソール、対話型debugger、REPL for PHP.

PsySHはPythonのIDLEに似たPHPの対話型ランタイム環境です。私はこれを Laravel で発見しました。Laravel 5 の職人ティンカーの機能は、Laravel を通じて実装されています。 Laravel 4 は別のプロジェクト、boris を使用します。

これは主に、PHP のいくつかの単純な関数や機能をテストするときに役立ちます。 empty の使用など、不確実な点が発生した場合は、それを使用してテストを行うことができます。

5. いくつかのフレームワークとコンポーネント

フレームワーク

会社では現在 Yii2 と Phalcon (C 言語実装) を使用しています。何を使用し、何を使用しないかは主に好みによるもので、自分で選択せざるを得ない場合もありますが、調べて詳しく知ることは悪いことではありません。

Laravel について言及すると、多くの人はすぐに Ruby on Rails を思い浮かべるでしょう。模倣や盗用が主な目的ではないと思います。主な目的は、開発者により良いツールを提供することです。幸いなことに、Laravel には、別のルーティング制御 (アクションのサフィックスやプレフィックスなし)、便利な ORM (Eloquent)、便利なテンプレート エンジン (Blade)、または比較的見栄えの良いドキュメント (コミュニティが見た場合) などが備わっています。

Powerful は巨大であると批判されることがありますが、これはプロジェクトの中長期計画、現在のプロジェクトの規模、将来の規模と負荷を理解する必要があるためです。

Larvalのコア実装はコンテナ(Container)とPHPのリフレクションクラス(ReflectionClass)です(Yii 2も同様)。これを理解するには、さらに多くの記事やドキュメントを読みながら、ソース コードも参照してください。

Symfony 2 は多くのコンポーネントを提供します。 http-kernel と http-foundation も継承され、Laravel で直接使用されます。それは知り、学ぶ価値があります。

CodeIgniter は小さいながらも強力なフレームワークです。 CI は Composer コンポーネントを使用して開発されていませんが、3.0 以降のバージョンでは Composer サポートも追加されています (これは追加のベンダー ディレクトリと autoload.php ファイルの導入にすぎません)。

ORM

ORMかActive Recordはやはり必要だと思います。 PHP は単なるテンプレート エンジンであり、SQL は手動で記述する必要があると考える人もいるかもしれません。こんな言葉を気にしないでください。

CodeIgniterにおけるActive Recordの実装は非常に軽量ですが、CI自体のサイズを考えると、すでに非常に便利です。

私はLaravelで実装されたEloquentがとても気に入っており、他のプロジェクトに統合することもできます。 Symfony 2 では Doctrine が採用されており、このプロジェクトも注目に値します。 Yii 2 には独自の実装メソッドのセットもあります。

テンプレートエンジン

テンプレートエンジンは3つのことを行う必要があります:

1. 変数値の出力(echo)、

2. 条件判断とループ(if ... else, for , foreach, while)

3. 他のファイルを導入、もしくは継承

Laravelで実装されているBladeは比較的軽量で使いやすいテンプレートエンジンです。ただし、これを他のフレームワークに導入することは、現時点ではそれほど簡単ではありません。暇なときにYii 2に導入してみました。今は簡単な実装ですが、後でBladeの解析部分を抜き出して軽量実装したいと思っています。 Github で検索すると、同じことをしている人が見つかりました。

Yii 2 はネイティブ PHP を使って書くことの方が推奨されているようですが、Smarty や Twig をサポートする拡張機能も提供しています。 Symfony 2 は Twig を使用します。 Twig と Symfony、および上記の php-cd-fixer はすべて SensioLabs の作品です。

Smarty は古くて粘り強いテンプレート エンジンです。正直に言うと、構文が複雑すぎて、変数の代入などに独自のメソッドが必要なため、あまり好きではありません。現在のバージョンではファイルの解析に Lexer が使用されており、PHP で実装された別の言語のように感じられます。プロジェクトには長すぎる正規表現や実装が複雑すぎるものもあり、これは非常に危険でエラーが発生しやすいものだと思います。関連する PHP 情報の詳細 http://www.kokojia.com/list/219.html




このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

phpstormでCLIモードをデバッグする方法は? phpstormでCLIモードをデバッグする方法は? Apr 01, 2025 pm 02:57 PM

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

See all articles