このシリーズでは、OOPとは何かという基本的なことから、OOPの主な特徴や利点、そしてOOPをどのように使うかという高度な方法までを紹介します。あらゆる可能性を実例を交えてご紹介します。
ページ進行中!* クラス、オブジェクト、サービス、エンティティ、バリューオブジェクト
ページ進行中!* 定数使用 コンストラクタ パラメータ
例外はオブジェクト指向プログラミングのツールで、アプリケーションのエラーを投げたり、処理したりする(treat)ためのエレガントな方法を提供します。 例外はまず投げられ (thrown)、処理され (try)、捕捉されます (catch) 。投擲のみ必須です。 例外発生哲学 例外が登場する以前のプログラミングにおけるエラー処理は、関数の戻り値を頼りに、自分なりにキャッチしてそれなりに振る舞うしかなく、非常に複雑なものでした。 実際、関数そのものはエラー処理を強制しないので、致命的な問題になりかね…
オブジェクト指向プログラミングの基本的な特性の1つは、継承とカプセル化です。これらの機能により、実装の可読性を保ちつつ、複雑なアプリケーションロジックを容易に構築することができるようになります。 相続の原則 継承は、あるクラスの実装が他のクラスをベースにしていることを表現しています。OOPの用語では、descendant(継承するクラス)とancestor(継承するクラス)という言い方をします。 一般に、継承は子孫が祖先の持つすべての機能を取得し、祖先が持っていた機能をそのまま採用するか、独自の…
プログラマがフレームワークを使い始めるのは、自分でフレームワークを書いてみて、それがどこにも通用しないことが分かってからだ、という有名なジョークがあります。面白いのは、それが事実だということです。私自身、経験済みです。2回目も。 しかし、ネッテのメインページにはこう書かれている。 本当のプログラマはフレームワークを使わない**。彼らは、コマンドラインから直接サーバーにウェブアプリケーションを書き込むのです。これは、彼らへのオマージュです。それ以外の人は、ネッテを使うことで仕事がぐっと楽になり、楽…
OOPの主要な原則のひとつにカプセル化原則があります。これは、複雑な問題は、独立して同時に解決できる多くの小さな問題に分解されるべきであるというものです。同時に、私たちユーザーは、それがどのように起こるかを気にせず、データ(内部状態)は分離されたままです。 例えば、(5+3)*(2/(7+3)) という式のユーザークエリに基づいて、どのように結果 1.6 を返すかという問題を解く場合、おそらく誰もこの問題を一度に解決する単一の関数やメソッドを書くことはできないでしょう。 HINT: この種の例に…
メソッドは、オブジェクトの内部状態を操作したり、オブジェクト同士に影響を与えたりすることができるため、オブジェクトの動作を表します。 実世界でメソッドを表現する 現実世界の物、例えば猫を考えてみよう。猫にはある性質(名前、色、体重など)があり、それをプロパティで記述し、さらに行動(鳴く、歩く、寝る、など)をメソッドで記述します。世の中にはたくさんの猫がいるので(「雷のように吠える、百万の猫がいるように」)、メソッドは与えられた型のすべてのオブジェクトに等しく適用される一般的なものであることを覚え…
デザインパターンは、プログラミングの思考法である。 開発に関するアドバイス、レディメイドのプラクティス、ベストプラクティス、洞察の数々を提供します。プログラミングパラダイムやタスクの種類によって、最適なデザインパターンが存在します。 メリット - なぜデザインパターンを使うのか? プログラミングでは、ある種の問題を解くことは繰り返しになるので、その問題を解くために一つの方法を選び、その方法を繰り返し続けることは理にかなっています。 特にチーム開発では、全員がアプリケーションの開発方法(どのデザイ…
PHPスクリプトをプログラミングするとき、コードを多くのファイルに分割し、すべてのパーツを利用できるようにするために、 include や require 、できれば require_once を何度も呼び出して読み込みます。 コードでは次のようになります。 require_once 'ルーター.php'; require_once 'ページ.php'; require_once 'Paginator.php'; この方法の主な欠点は、プログラマーが常にすべてがロードされていることを確認しなけれ…
オブジェクト指向プログラミングは、プログラミングの方法についてのパラダイム(考え方)である。OOPは、実際のプログラミングで何度も何度も解決されてきた一般的な問題や困難を、かなり根本的に単純化してくれることがすぐにわかると思います。 基本的な考え方 オブジェクト指向プログラミングの基本的な考え方は、大きなアプリケーション(複雑なタスク)を多くの小さなパーツに分割し、エレガントかつ独立して解決できるようにすることです。 例えば、航空券の予約システムをプログラミングする場合、何千ものケースを解決する…
オンラインコース「OOP in PHP」の第1回目の記事へようこそ。記事の全リストは概要ページをご覧ください。 コンテンツに関する注意事項 このシリーズの目標は、オブジェクト指向プログラミングのエッセンスを最もよく説明し、意味のないことに何百時間も実験する必要がないようにすることです。すべてのテクニックとチュートリアルは実践から得られたもので、私自身がプログラミングを学んでいたときに読みたかったように説明されています。というのも、プログラミングに没頭してすべてがめちゃくちゃになってしまうよりは、…