PHP 独習の上級ルート
PHP システムを包括的かつ深く理解するために、実践的な演習を含む PHP 独習ルート プランを個人的な経験と経験を通じてまとめました。オンラインの専門家を検索する経験、学習提案、専門家の進歩、よくある質問、テストの概要。体系的な学習計画と目標とみなすことができます。
盲目的な学習を避け、改善のための指導を提供します。もっと自分にプレッシャーをかけて、頑張ってマスターレベルに到達したいと思っています。神は努力をご褒美として与えてくださいますので、自分自身を励ましてください!このルートは私だけのものです。
その一部はブログから引用しています。参照: [原文] PHP プログラマーのための技術的成長計画 http://blog.csdn.net/heiyeshuwu/article/details/40098043
この PHP 成長計画明確で明確で、非常にメジャーです。
----------------------------------------------- --- --------------
構文と API に慣れる -> zend、ci、wordpress のソース コードを読む - > PHP プロジェクトによる独立開発 -> PHP エンジンの実装の詳細、拡張機能の作成、パフォーマンスの最適化などを理解します。
(1 週間) HTML CSS HTML5 CSS3
(2~3日) 掲示板またはメモ 本書、(追加、削除、変更、クエリ、配列関数データベース機能)
(7日) 掲示板または企業Webサイト、(テンプレート、ページング、権限) phpchinaのマスターPHPマスターが先導 - 質問と回答のまとめと PHP マニュアル
(1 ヶ月) discuz を学び、海外のオープンソース プログラム (zencert Joomla drupal) を学び、phpchina に関する知識の本質を学びます。
(1 か月) ZF フレームワークの詳細な学習 (追加、削除、変更、アクセス制御、フロントエンド テンプレート ページなど)
(長期的な要約) これまでに行った小規模プロジェクトの要約、オブジェクト指向の思考を使用し、構造を最適化します。
MVC についての理解を深めるために、オープン ソース フレームワークのソース コードを見てください (このステップでは、CI、Slim などの小規模なオープン ソース フレームワークを見つけることに注意してください)
より詳細なシステム学習 (MySQL Linux C) language javascript html css redis など )
(2 週間) 3 ステーション (少なくとも 20 アート ページ) ) psdからhtmlへのカット練習。
(1 週間) jquery 実践演習
(1 月) zf フレームワークを使用してモジュールを開発し、
データベースは、mysql と sqlserver に習熟し、zendstdio の操作に習熟している必要があります。
phpmyadmin の操作に熟練している。
adodb (データベース インターフェイス) javascript xml ajax (非同期 JavaScript および XML) jquery (JS フレームワーク)、
OOP プログラミングに精通している、thinkphp、zf フレームワークを学ぶ、smarty テンプレート エンジン、pear (PHP 拡張機能とアプリケーション ライブラリ) を学ぶ、プロトタイプ(デザインパターン)。
Apache の管理者マニュアルも購入して、よく読んでください。
同時に、Linux などについて一般的に理解します。およびサーバー管理およびその他の操作。
----------------------------------------------- --- ----------------
「関数」をすべて読む必要はありません。 「リファレンス」の部分ですが、日付と時刻、ファイルシステム、その他の基本的な拡張子、セッション、変数、型については一読することをお勧めします。よく使用される関数やクラスが多く紹介されています。
これらの機能をすべて覚える必要はありません。印象を覚えておいて、将来必要になったときに戻ってくるだけで、使えば使うほど自然に覚えてきます。 。
ゲストブックから始めて、次に個人のブログ、そしてより複雑な CMS、または小規模な OA を作成します。プロジェクトについて考え続ければ、実際には問題を解決することができます。得。 !
PHP OOP をしっかり学びたい場合は、Zend Framework 2 に直接アクセスしてください。半年後には、かなり進歩したと感じるでしょう。
要約: 独学は非常に重要であり、実際的なものです。プロジェクトの経験も非常に重要です。コンピューターの基本は重要ではないと考えないでください。コンピューターの基本を学ぶことは、プログラミング言語を学ぶのに非常に役立ちます。自分に厳しくなり、努力を重ねる限り、無敵のものはありません。
焦点: LNMP に習熟する (中心となるのはインストールと構成の基本操作です)
目標:基本的な LNMP システムのインストール、簡単な構成、およびメンテナンスを完了できる。簡単なシステムの基本的な PHP 開発を実行できる。中規模の PHP システムで特定の PHP 機能モジュールの開発をサポートできる。
基本的な構文配列、文字列、データベース、XML、ソケット、GD/ImageMgk 画像処理など、MySQL 操作にリンクされたさまざまな API (mysql/mysqli/PDO) に精通しており、さまざまなコーディングの問題の解決方法を知っている。定期的に使用される PHP フレームワーク (ThinkPHP、Zendframework、Yii、Yaf など)。基本的な MVC 操作メカニズムとその理由を理解し、さまざまな PHP フレームワークの違いについて少し知っている。開発プロジェクトのファイル ディレクトリ構成を理解し、基本的な優れたコード構造とスタイルを備え、小規模システムの開発と中規模システムの特定のモジュールの開発を完了できる。
重点: LNMP スキルを向上させ、LNMP をより包括的かつ熟練的に適用できるようになります。
目標: いつでもどこでも LNMP 環境をセットアップし、日常的な構成を迅速に完了できるようになり、発生する開発およびオンライン環境の問題のほとんどを追跡して解決できるようになり、アーキテクチャと開発作業を独自に開始できるようになります。中規模のシステム; 大規模なシステムで動作可能 中規模のモジュールの開発作業を引き受けます
第 1 段階の機能に加えて、PHP およびさまざまな第 3 段階の機能を自由にインストールできます。 party extensions; php-fpm のほとんどの設定オプションと意味 (max_requests/max_children/request_terminate_timeout やパフォーマンスに影響するその他の設定など) を理解し、mod_php/fastcgi の違いを理解している。 PHP オブジェクト指向の深い理解を含む、フレームワークに関する SPL/文法レベルの特殊機能を含む、より詳細な PHP を少なくとも 1 つ以上の従来の PHP MVC フレームワークのコードを読んでいること。基本的な PHP フレームワークの内部実装メカニズムと設計アイデアを理解していること、PHP 開発で従来の慣例を上手に使用できること、アプリケーション開発の設計パターン (抽象ファクトリ/シングル ケース/オブザーバー/コマンド チェーン/ストラテジー/アダプターなど)パターン); 開発を完全に自由化し、MVC パターンを深く理解し、PHP のさまざまなコード最適化方法に精通し、迅速にアップグレードできるようにするために、独自の PHP MVC フレームワークを開発することをお勧めします。 PHP のセキュリティ問題のほとんどを解決する; 基本的な PHP 実行メカニズムの原理 (Zend エンジン/拡張基本動作メカニズム) に精通している
重要なポイント:基本的な LNMP プログラムに加えて、特定の方向や分野について深く学ぶこともできます。 (深さ次元開発)
目標: 基本的な PHP ビジネス開発を完了できることに加えて、ほとんどの詳細で複雑な技術的問題も解決でき、中規模および大規模なシステム設計とこれは技術的な方向であり、私はこの分野では比較的専門的です。 (例えば、MySQL、Nginx、PHP、Redisなど、あらゆる方向への徹底的な研究)
基本的なコアスキルとして、第2段階を踏まえたより深い学習と応用が必要です。基本的なコードの適用に関しては、PHP 開発で遭遇する問題の 95% を解決でき、ほとんどの PHP テクニックを理解できます。また、ほとんどの PHP フレームワークを 1 日以内にすぐに使い始めることができ、各主流の PHP フレームワークの利点を理解できます。プロジェクト開発中に、構成に関して迅速かつ便利にテクノロジを選択できます。第 2 段階で学んだ知識に加えて、複雑な高度な構成など、より不明瞭な構成オプション (php auto_prepend_file/auto_append_file) についても知ることができます。拡張機能と原則 (memcached 拡張機能設定の memcache.hash_strategy、apc 拡張設定の apc.mmap_file_mask/apc.slam_defense/apc.file_update_protection など)、php-fpm の動作を含む、php の動作メカニズムをよく理解している。メカニズム (php-fpm などにより、さまざまな構成マシンでプロセス番号の計算と原理が可能になります)、zend エンジン (vm/gc/stream 処理) に基本的な知識があること、基本的な PHP カーネル ソース コードを読んでいること (または関連記事を読んでいること)、 PHP の内部メカニズムを理解している。 ほとんどのコア データ構造 (基本型/配列/オブジェクト) の実装を理解し、コア インフラストラクチャ (zval/hashtable/gc) を深く理解している。基本的な PHP 拡張機能の開発を実行でき、拡張機能開発 (minit/rinit など) の中級および高度な知識を理解し、php と apache/nginx (mod_php/fastcgi) の間のさまざまな通信および対話方法の詳細に精通している); PHP 拡張機能の開発に加えて、PHP をより低いレベルから理解するために Zend 拡張機能の開発を学習することも検討できます。
----------------------------------------------------- --------------------
英語が得意な方は読むことをお勧めしますhttps://tutsplus .com/ (無料版 http://code.tutsplus.com/) は有料 (年間支払い $15/月) ですが、それ以上の特典が得られます。
私は最初に PHP を学び、その後、jquery、angularjs などを学び、それらをプロジェクトに応用しました。とnodejsがありましたが、使用する機会がありませんでした。
外国人マスターによる指導は、合理的なチュートリアル構成であるだけでなく、ペースが速いため、時間を無駄にすることなく、高い集中力を維持することができ、プログラミングの習慣を身につけることもできます。達人のツールや各種エディタのワークフロー、Flash Kill PHPer のビデオなど、業界の最新情報を学びます。
php カーネルを勉強する
php の技術アーキテクチャ
php オープンソース プロジェクトに参加するのが最善です
------ ---- --------------------------------------
技術分野 (詳細):
1. データ構造、マルチスレッド、I/O、HTTP プロトコルなどの基本的な知識
2. 言語の深さ(PHP の動作メカニズム、パフォーマンスの最適化、APC (およびその原理など))
3. 読んだフレームワークやそのメカニズムなど詳しく聞く
4. 知識の幅、C や Java などの静的言語。1 つの言語しか知らないのは良いことではないと常々感じています
1. 履歴書を見て、ユーザー数、PV、スループット、関連する問題や過去のプロジェクトの解決策などについて尋ねられます。
2.データベース設計の経験、なぜデータベースパーティショニングを実行するのですか?
データベースパーティショニングとテーブルパーティショニングの目的は何ですか? 、など?例を挙げてください。
3. データベースの最適化とは何ですか?
4. Web 開発ではどのようなキャッシュが発生しますか?
5. 256M のメモリ (10G の場合) ファイルを並べ替える方法 (ファイルの行ごとに 1 つの番号)?
10G ファイルを検索するには?
10G ファイル内の各キーワードの出現数をカウントするにはどうすればよいですか?
6. あなたが現在 12306 の鉄道チケット予約のデザイナーである場合、全国の人々のニーズを満たすにはどうすればよいですか?
7. 1 億人のユーザーがアクセスする場合、サーバーのアーキテクチャは何ですか?ユーザー 情報ストレージ ソリューションを設計する方法は?
8. あなたが技術チームのリーダーで、自分が率いるチームがタスクの進行状況を完了できない場合、問題をどのように解決する必要がありますか?
スケジュールが設定されているときにタスクを挿入すると、がいっぱいです。全体の進捗状況が遅れないようにするためにはどうすればよいですか?
一部のエンジニアが今日予定されていたタスクを完了していない場合、どのように解決すればよいですか?
9.高パフォーマンスの Web サイトを構築する方法について説明します。各ステップは何に注意し、どのように最適化する必要がありますか?
10. データベースのマスターとスレーブを分離する必要があるのはなぜですか? ?
11. マルチサーバー共有セッションに対処する方法?
12. 10G テーブルの場合、フィールドが表示される回数をカウントするために php プログラムを使用します。
13. nginx ログの例を教えてください。http 応答時間が 1 秒を超える上位 10 個の URL を数えるのに最適だと思われるプログラミング言語を使用してください。
14. mysql 設定ファイル。プログラミング言語を使用してください。ファイルを解析するのに最適だと思いますか?
15. 2 つのパス a と b を与え、a と b の間のギャップを計算し、a と b の共通部分を表示するアルゴリズムまたはアイデアを作成します。
16. URL を指定して、nginx でリライトを設定して特定のパスを指定しますか?
17. PHP ファイルの解釈プロセスとは何ですか? PHP の全体的なパフォーマンスを向上させるために使用できるものは何ですか? php?テクノロジー?
18. セッションとCookieのライフサイクルの違い?
19. プログラムのロードの違い?オンデマンドの php ファイルをどのように実装しますか?
20. Chrome はマルチスレッドと呼ばれますが、マルチスレッドとマルチプロセスの違いは何ですか?
21. PHP では最後にハッシュ衝突がありました。ハッシュ衝突の原理は何ですか? それを修正する方法は何ですか?
22. Web は安全ではありません。その要因は何ですか?
23. 2 つの単一リンクされたリストが交差する場合は、交差位置を計算するための最適なアルゴリズムとそのアイデアについてもお話します。
24. あなたが技術チームのリーダーならどうしますか?
25. nginx の負荷分散とは何ですか?サーバーの 1 つがハングアップした場合、アラーム メカニズムを実装するにはどうすればよいですか?
26. 最適化を行わない場合、nginx の一般的な最大接続数はどれくらいですか? 1 秒ごとに更新?削除しますか?
27. mysql のデータ型はどれくらいですか?
28. nginx は、js、css、画像などの情報をキャッシュするように設定されています。キャッシュの原理?
29. キャッシュのヒット率を向上させるには?
30. PHP のメモリ再利用メカニズムとは何ですか?
31.何か質問はありますか?
------------------------------------------ ------ -------
echo と echo "
"; スクリプト js はアラート メソッドです。 CSSデバッグは、カラーブロックの作成や枠線の追加などを行います。
印刷できない場合にログ方式を使用します。 logToFile("my.log", "out page:".$_POST ['cpage']);
function logToFile($filename,$msg){
$fd=fopen($filename, "a" );
$str="[".date("Y/m/d h:i:s",mktime())."]".$msg;
fwrite($fd, $str." n");
fclose($fd);
}
デバッグ技術について非常に包括的にまとめたブログがあります。以下を参照してください。
ブログのアドレス: http://blog.csdn.net/heiyeshuwu/article/details/5684307
オンラインで閲覧: http://down.51cto.com/data/155822PHP デバッグ技術マニュアル リリース (1.0.0 pdf) ディレクトリ
1 組み込み API 出力デバッグ
1.1 基本デバッグ API
1.1.1 echo (print):
1.1 .2 printf
1.1.3 print_r、var_dump(var_export)、debug_zval_dump
1.2 エラー制御とデバッグのロギング
1.2.1 エラー オプション制御
1.2.2 エラーのスローと処理
1.2。 3 エラー抑制機能の使用
1.2.4 ログ
2 ブラウザのデバッグ
2.1 ページ出力のデバッグ
2.2 FirePHP のデバッグ
2.2.1 共通変数の監視
2.2.2 コールスタックの監視
2.2.3 スローされた例外の監視
2.2.4 グループ表示情報
3 IDE デバッグ
3.1 一般的に使用される基本的な IDE の概要
3.1.1 Vim
3.1.2 Zend Studio
3.1.3 Eclipse
3.1.4 NetBeans
3.2 IDE デバッグ
3.2.1 Zend Studio Zend デバッガー
3.2.2 Eclipse (PDT) Xdebug
3.2.3 Vim Xdebug DBGp
4 PHP パフォーマンス デバッグ テクノロジ
4.1 基本的な使用時間の監視
4.2 パフォーマンス分析に Xdebug を使用する
4.2.1 インストール構成:
4.3 APD (アドバンスト PHP デバッガー)
4.3.1 インストール構成
4.3.2 APD を使用する
4.4 パフォーマンス分析に Xhprof を使用する
4.4.1 Xhprof の利点:
5 PHP 単体テスト テクノロジ
5.1 PHPUnit