ホームページ  >  記事  >  バックエンド開発  >  PHP シリーズ: PHP Web 開発の基礎、phpweb_PHP チュートリアル

PHP シリーズ: PHP Web 開発の基礎、phpweb_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:00:351583ブラウズ

PHP シリーズ: PHP Web 開発の基盤、phpweb

PHP は、動的 Web 開発のためのスクリプト言語です。PHP は、開発パッケージ管理として Composer を使用します。

1. Composer を使用して依存関係を管理します

.NET 開発ではアセンブリの依存関係を管理するために Nuget が使用されるため、これなしではいられないようになりました。幸いなことに、Java には、jar パッケージを管理するための Maven もありますが、現在では、PHP の ibiblio ミラーが利用可能です。 Composer (参考 1) はリソース パッケージの管理に使用されます。

(1) グローバルインストール(参考2)

指定したインストールディレクトリでコマンドラインを実行します:

リーリー

指定したインストールディレクトリでコマンドラインを実行します:

リーリー

指定したインストールディレクトリを環境変数のシステム変数Pathに追加します。

(2) プロジェクトのインストール

プロジェクトディレクトリでコマンドラインを実行します:

リーリー

composer.json ファイルを使用して依存関係を構成します。 PHP で一般的なログコンポーネントを設定する方法:

リーリー

コマンドラインコマンド php combos.phar install を使用して、依存リソース パッケージをインストールします。グローバルにインストールした場合は、composer install を実行するだけで済みます。

これにより、composer.lock ファイルが生成され、リソース パッケージがベンダー ディレクトリにダウンロードされます。composer.lock ファイルは、依存関係をダウンロードするときに実際に使用されるファイルです。

(3) 依存関係をアップグレードする

プロジェクトは、composer.lock ファイルを使用して依存関係を維持します。新しいバージョンの依存関係を使用する必要がある場合は、必要に応じて、composer.json ファイルを変更し、更新コマンドを実行する必要があります。グローバルインストール: Composer アップデート、プロジェクトインストール使用: php composer.phar update。

(4) リソースパッケージのクエリとミラーリング

http://packagist.org を使用して、.NET の https://www.nuget.org/packages/ や Java の http://search.maven.org/ などのリソース パッケージを取得できます。

http://packagist.phpcomposer.com ミラーを使用し、グローバル設定には次のコマンドライン コマンドを使用できます:

リーリー

プロジェクト設定では次のコマンドラインを使用します:

リーリー

もちろん、最も簡単な方法は、composer.config ファイルを直接変更することです:

リーリー

(5)自動読み込み

Composer は、ベンダー ディレクトリ内のすべての依存関係情報を含む autoload.php ファイルを自動的に生成し、維持します。したがって、autoload.php を通じてサードパーティのライブラリを使用する必要があるだけです。例:

リーリー

2.PHPの基本

(1) PHP は、C 言語の構文に似たスクリプト言語です。

C または C++ 言語の基礎があれば、多くの概念や構文を直接比較できます。大文字と小文字の区別からコメント、データ型、関数、パラメーターの受け渡し、メンバー参照など。 C/C++/Java/C# システムを学習し、JavaScript スクリプト言語の基礎を学んだ後は、PHP スキルを追加することも自然になります。

(2)PHP は動的型付け言語です。

PHP は C 言語などの厳密に型指定された言語と同じデータ型定義を持ち、サポートされる型も似ています。ただし、PHP の同じ変数は、異なる時点で異なる型のデータを表すことができますが、同時に、各変数は、指定された型の厳密に型指定された言語変数と同等です。したがって、PHP の場合は、動的型という名前がより適切です。 Java/C# などの厳密に型指定された言語を使用することに慣れている場合、動的に型指定されたスクリプト言語に対する不安は常にありますが、PHP の型チェック機能 (is_boolis_integeris_doubleis_stringis_null など) を使用することで、これらの懸念を軽減できます。

(3) PHP はページ ファイル モードで実行されます。

PHP をどのように使用するかに関係なく、PHP はページ ファイルとして実行されます。これは、ブラウザ上で実行される JavaScript ファイルが現在のページに読み込まれたときにのみ参照および実行され、PHP のみが参照および実行されるのと同様です。 include または required を使用すると、メソッドがロードされた後にのみ参照および実行できます。その後 __autoload と spl_autoload を追加しても、ロード参照の性質は変更されません。

(4) PHP には複雑なフレームワークは必要ありません

PHP は Web リクエストを処理するために生まれました。一般に、垂直リクエスト処理、水平認証および認可制御部分を除いて、他の部分は PHP にあまり依存すべきではありません。 PHP を使用した高度な Web フレームワークは本質的に間違っています。 PHP 自体の実行方法とロード方法により、PHP は問題を解決するためにフレームワークを使用するよりも、さまざまなコンポーネントを再利用するのに当然適しています。一日中フレームワークに期待している人は、PHP やビジネス ロジックの基礎に取り組みたくないかのどちらかです。

3.PHP共通ファイル

(1) 設定ファイルconfig.php

アプリケーション構成のさまざまな情報は、1 つ以上の構成ファイルで定義されます。通常、構成ファイルには、データベース接続情報が含まれるだけでなく、すべての URL とコントローラーとビュー間のルールを読み取るために、リクエストごとに構成ファイルがロードされます。

(2) エントリーファイルindex.php

ホームページリクエストまたはリクエストされたすべてのファイルを処理します。 Index.php は、PHP の MVC を実装するときの自然なフロントエンド コントローラー FrontController です。 Index.php は、リクエストの転送、水平の認証と認可、およびその他の処理ファイルの垂直処理を担当します。これらも、index.php にロードする必要があります。

(3) データアクセスファイルdatabase.php

database.php は、ツール クラスのデータ アクセスに使用される最も重要なファイルです。データ アクセスでのコードの繰り返しを避けるために、一般的な PHP アプリケーションには個別のデータ アクセス ファイルまたはデータ アクセス ファイルのグループがあります。

4.自定义Session

在PHP中自定义Session比Java中方便多了,只需要将自定义的函数名称做为参数传递给session_set_save_handler($open, $close, $read, $write, $destroy, $gc)作为参数即可,我们自定义一个使用cookie作为存储的session,作为演示没有对数据长度进行验证,也没有使用对称加密解密。

<?<span>php

</span><span>function</span><span> open_session() {
    </span><span>return</span> <span>true</span><span>;
}

</span><span>function</span><span> close_session() {
    </span><span>return</span> <span>true</span><span>;
}

</span><span>function</span> read_session(<span>$id</span><span>) {
    </span><span>if</span> (<span>$_COOKIE</span>[<span>$id</span><span>]) {
        </span><span>return</span> <span>base64_decode</span>(<span>$_COOKIE</span>[<span>$id</span><span>]);
    }
    </span><span>return</span> ''<span>;
}

</span><span>function</span> write_session(<span>$sid</span>, <span>$data</span><span>) {
    </span><span>if</span> (<span>$_COOKIE</span>['session_end'<span>]) {
        </span><span>setcookie</span>(<span>$sid</span>, <span>base64_encode</span>(<span>$data</span>), <span>$_COOKIE</span>['session_end'<span>]);
    } </span><span>else</span><span> {
        </span><span>$start</span> = <span>time</span>() + <span>session_get_cookie_params</span>()['lifetime'<span>];
        </span><span>setcookie</span>('session_end', <span>$start</span>, <span>$start</span><span>);
        </span><span>setcookie</span>(<span>$sid</span>, <span>base64_encode</span>(<span>$data</span>), <span>$start</span><span>);
    }
    </span><span>return</span> <span>true</span><span>;
}

</span><span>function</span><span> destroy_session() {
    </span><span>$_Session</span> = <span>array</span><span>();
    </span><span>return</span> <span>true</span><span>;
}

</span><span>function</span><span> gc_session() {
    </span><span>return</span> <span>true</span><span>;
}

</span><span>ini_set</span>("session.cookie_lifetime", "3600"<span>);
</span><span>session_set_save_handler</span>('open_session', 'close_session', 'read_session', 'write_session', 'destroy_session', 'gc_session'<span>);
</span><span>session_start</span><span>();
</span><span>$_SESSION</span>['count'] += 1<span>;
</span><span>echo</span> <span>$_SESSION</span>['count'<span>];
</span><span>session_write_close</span><span>();
</span>?>

参考

(1)https://getcomposer.org/doc/00-intro.md

(2)http://docs.phpcomposer.com/00-intro.html

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1092700.htmlTechArticlePHP 系列:PHP Web 开发基础,phpweb PHP是动态类型的Web开发的脚本语言,PHP以页面文件作为加载和运行的单元,PHP现在有了Composer作为开发包管...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。