途中で php
私が php に出会ったのは 2012 年からです。もう 2 ~ 3 年前からやっています。数え切れないほど寄り道をし、数え切れないほど徹夜して、あらゆる種類のものを見てきました。このような PHP 本やブログなどは、私の過去の概要をまとめたものであるはずです。
PHP は弱い型指定言語です。いわゆる型指定言語とは、型の区別がないことを意味するのではなく、PHP 変数を事前に定義する必要がないことを意味します。 $a/$b/$c などの $ 記号のみが必要です。 PHP 変数の基礎となる実装は C の Union を使用して実装されますが、PHP 変数は操作中に自動的に型変換を実行します。第 2 に、PHP 変数は「参照コピー」および「書き込み時のコピー」メカニズムを使用します。
PHPを後半で学ぶと、関数の実現は実現できて何も学ぶことがないように感じます。 PHP 自体には、後の段階で学ぶべきことは何もありません。この時点で学習を試みることができます。いくつかの設計パターンを調べ、いくつかのオープン ソース コードを調べ、MVC をカプセル化してみたり、元の PHP 言語を使用してカプセル化を実装してみたりしてください。いくつかのフレームワーク。これを読んだ後、PHP のソースコードを見てみると、現時点ではまだ PHP のソースコードが理解できないことがわかりますが、最初はこのような感じです。 C 言語と C++ を再学習すると、C から C++ への移行が実際には多数の構造体 (struct)、define、typedef などのカプセル化プロセスであることがわかるでしょう。 PHP ソース コードでは、1 つ、2 つ、および 3 つのポインターが使用されています。PHP について学ぶべきことが何もないのではなく、さらに深く掘り下げる必要があることがわかります。今後数日は、PHP のソース コードを見て、PHP 拡張機能を実装し、それを自分の環境に組み込んでみてください。
PHP の後半で学ぶべきことが何もないわけではありませんが、言語自体は比較的単純なので、アプリケーション レベルで学習するだけであれば、実際には何も学ぶ必要はありません。さて、ソースコードをざっと読むと、php が opcode に解析されて実行されることがわかります。apc の使い方、memcache と radius の概念がわかり、php についてより深く理解できるようになります。 . 次に、最適化に移りましょう。
PHP は Web 開発言語なので、Web に関しては最適化が必要になります。 Web サイトのボトルネックは通常 2 か所に存在します。1 つはデータベースのボトルネック、もう 1 つはデータベースの側面 (テーブル構造の最適化、mysql エンジンの選択、インデックスの追加、垂直テーブル分割、水平テーブル) です。パーティショニング、マスター/スレーブ データベースの読み書き分類、クラスタリング。 PHPに関して言えば、ビューレイヤーでのcssやjsの最適化から始まり、cssやjsの圧縮や結合、画像の加工、アイコンの結合などを行うことができます。コントローラー層は SQL ステートメントを最適化して、関連するクエリとサブクエリの使用を削減し、SQL ステートメントを分割して実行し、データを結合できます。ページ静的処理を使用して頻繁に変更されない一部のページを処理し、memcache/apc/radius をデータベース キャッシュとして使用してデータベースの負荷を軽減し、opcode 関数を使用して PHP 解析を削減します (php5.5 以降、組み込みのオペコードにより apc が排除されます) 、apc 実装を使用することもできます)、Apache サービスの代わりに高速な nginx を選択する、サーバーをクラスター化するなどです。もちろん、PHP 自体の記述には、一重引用符や二重引用符の使用、include や require の使用などの最適化テクニックがありますが、これについては再度説明しません。現時点では、学ぶべきことがまだたくさんあります。
弱い型付けの言語を学習しても改善が見られないと感じた場合は、強い型付けの言語を再度学習するとよいでしょう。たとえば、JSP を作成するために Java を学習すると、そこには何もないことがわかります。セッションをカプセル化するためにマップやハッシュマップなどの既存のデータ構造を使用することもできます。フレームワークによって提供される機能には慣れているかもしれませんが、ここでは実際にデータベース リンクをカプセル化する必要があります。自分でデータを読み取って転送し、開発を容易にするためにマップ内のメソッドを返します。
PHP を学習しても改善が見られないと感じた場合は、多くの本を読んで Linux システムを使用してみる必要はありません。実際、Linux は Windows よりも便利であることがわかります。lnmp/lamp のセットを使用したり、いくつかのシェル コードを作成したり、データベースを自動的にバックアップしたり、PHP に従って特定の機能を実現したりすることもできます。 PHP プログラムをデバッグするためにブレークポイントを使用するように PHP の xdebug を設定するには、PHP 拡張機能を作成したり、memcache を設定したりすることも非常に便利です。 vim を使用して何かを作成し、Gcc コンパイル c を使用してみることもできます。 gdb を使用してプログラムをデバッグし、コマンドラインを使用してさらに多くのことを実行してみると、php が実際に Linux に最適であることがわかります。
この時点で、あなたはすでに Linux の使用に習熟しています。小さなフレームワークを自分で実装して、一般的なフレームワークのテクニック、PHP のオブジェクト指向、PHP のマジック関数、および PHP がどのように多くのステータスを実装するのかを分析してみてはいかがでしょうか。 PHP は Apache で実行されます。なぜ nginx が Apache よりもパフォーマンスが高いのか、複数のサーバーでセッションを共有する方法、開発プロセス中の特定の状況で使用するために、curl を使用していくつかのインターフェイスを呼び出す方法、および Serialize /unserialize を使用して実現する方法一部のデータのシリアル化と保存、および逆シリアル化セッションの使用、一部の Web サイトのコンテンツをクロールする方法、および使用習慣を改善する方法。つまり、まだやるべきことがたくさんあるということです。PHP で学ぶべきことが何もないわけではありません。しかし、何もないと感じたときは、コーディング段階にとどまるべきではありません。学ぶことがたくさんあるのは、あなたの知識の範囲がまだ小さすぎて、認知レベルが浅すぎるからです。
プログラミングは簡単ではありませんが、それを習得して大切にしなければなりません。仕事を見つけるのも簡単ではないので、常に自分自身を向上させるために努力する必要があります。
著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。