ホームページ バックエンド開発 PHPチュートリアル 用封装类来合理的设计PHP项目--谈PHP项目中类的封装_PHP

用封装类来合理的设计PHP项目--谈PHP项目中类的封装_PHP

Jun 01, 2016 pm 12:34 PM
PHPプロジェクト

 编码对于合格的PHP程序员来说并不是什么难事(也许只是花费时间长短的问题),因此系统分析和设计这一阶段就显得尤为重要。不过本文并不打算讨论和需求分析、获取商业逻辑相关的话题,而是针对系统设计方面进行探讨。

编码对于合格的PHP程序员来说并不是什么难事(也许只是花费时间长短的问题),因此系统分析和设计这一阶段就显得尤为重要。对于一个担任PHP项目的系统分析员来说,面临着两个难题:

  1. PHP语言本身的限制。
    这一点在复杂系统的面向对象设计中尤其显著。PHP的面向对象特性在现有版本中虽然得到了改善,但是还不甚健全,根本不足以担任面向对象设计的实现语言;即使眼光长远一些,在即将释出的以Zend Engine 2.0支持的全新PHP中,面向对象特性也不会像现在流行的Java或者C++那样(关于这方面的内容可以参见我在developerWorks中国网站发表的另一篇文章)。但是如果采用完全面向过程(准确说是面向Web页面)的方式,可以想见整个系统的设计会非常复杂,而由此带来的编码复杂和维护困难更加难以应付。
  2. 现有资料的严重缺乏。
    这是众所周知的现象即针对Web项目的系统设计资料不足;而在这些有限资料中,关于PHP的设计资料又非常匮乏。如果本公司或本人也没有相关的技术积累,系统分析员只能在黑暗中摸索方法(更坏的两种情况,一是照搬其他项目比如Java或者C++的设计,二是认为项目简单而不负责任的草草了事)。


既然如此,采用何种方法妥善处理PHP系统的分析和设计?最初的构想应该需要分清项目承担任务的类型:

  1. 涉及大量客户本身或者客户所在行业的商业逻辑的项目,包括办公系统、订单系统以及其他商业系统。
  2. 简单网站项目,包括一些需要承担高访问量或要求快速响应的项目比如品牌网站或者活动网站以及其他一些网站。
  3. 综合性网站项目。通常包含多个相对独立的子系统比如新闻子系统、论坛子系统、产品陈列子系统等等。


PHP的设计初衷在于解决后两种项目的迫切需求,语言本身对于这些项目进行了良好的改造。而众多的PHP开发者对这些项目也具有或多或少的经验,相关书籍中的范例也大都围绕于此。相对说来第一种系统所有的资料不多,各种出版物对其内容也很少提及。因此在本文中将题所述对第一种类型的项目进行详细讲述(有关MVC模式和类封装),同时附带提及第二种项目(有关黑客代码)以及第三种项目的设计方法。当然,并不是被归类的这些项目就只能采用本文描述的方式,系统分析员需要权衡各方面因素加以选择。

如何分离用户界面和后台操作?如何避免将商业逻辑混淆于一般的流程控制中?作为一个严谨的商用项目,就需要考虑很多类似的问题。对于由PHP担当的这类项目,贯彻Model-View-Controller(MVC)模式的设计是一个非常好的方法。

理论描述
在这里我不想多加解释MVC模式本身--简单的从字面上以及应用上说,通过将系统的设计分为Model模型/逻辑、View视图/界面、Controller控制/流程三个逻辑部分达到良好的项目效果,以此便利各部分开发者的工作并降低日后的维护成本。(如果您熟悉JSP开发的Model 2模式,可以发现它也是MVC模式的很好体现。)就现实的项目开发而言,现存的很大问题包括网页设计人员和程序开发人员的工作交错和冲突以及商业逻辑嵌入页面造成不可重用也很难维护等等。引入MVC模式一方面可以为系统的总体设计指出明确的方向,对于开发团队的分工也是良好的指导。

既然依照MVC模式要求对系统的总体结构在逻辑上分成三部分,那么团队的开发者中也存在着针对各个部分的开发者。

开发者角色 相关系统逻辑 职责
网页设计人员 View视图/界面 设计所有用户界面的网页模板。
控制流程开发人员 Controller控制/流程 编写系统流程中的所有PHP页面。
商业逻辑开发人员 Model模型/逻辑 开发系统设计中规定的各个类(其中的方法)。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

PHPプロジェクトにデータのバックアップとリカバリ機能を実装するにはどうすればよいですか? PHPプロジェクトにデータのバックアップとリカバリ機能を実装するにはどうすればよいですか? Nov 04, 2023 pm 04:30 PM

PHPプロジェクトにデータのバックアップとリカバリ機能を実装するにはどうすればよいですか? PHP プロジェクトの開発および管理のプロセスでは、データのバックアップおよびリカバリ機能が非常に重要です。偶発的なデータ損失を避けるためでも、プロジェクトの移行やアップグレード中にデータのセキュリティを確保するためでも、データのバックアップとリカバリの方法をマスターする必要があります。この記事では、PHP プロジェクトにデータのバックアップと復元機能を実装する方法を紹介します。 1. データ バックアップ定義のバックアップ パス: まず、バックアップ ファイルの保存に使用するパスを定義する必要があります。プロジェクト構成ファイルで定義可能

Deployer 入門チュートリアル: PHP プロジェクトのデプロイメント プロセスを最適化する Deployer 入門チュートリアル: PHP プロジェクトのデプロイメント プロセスを最適化する Jul 13, 2023 pm 05:22 PM

Deployer 入門チュートリアル: PHP プロジェクトのデプロイメント プロセスの最適化 はじめに: 最新の開発では、自動デプロイメントが不可欠な部分になっています。 Deployer は優れた PHP プロジェクト展開ツールであり、展開プロセスを簡素化し、効率を向上させるのに役立ちます。この記事では、Deployer の基本的な使用法を紹介し、コード例を通じて Deployer を使用して PHP プロジェクトのデプロイメント プロセスを最適化する方法を示します。 1. Deployer を選択する理由は何ですか? Deployer は軽量です

PHP プロジェクトで検証コードを実装し、ボット攻撃を防ぐにはどうすればよいですか? PHP プロジェクトで検証コードを実装し、ボット攻撃を防ぐにはどうすればよいですか? Nov 03, 2023 pm 05:40 PM

PHP プロジェクトで検証コードを実装し、ボット攻撃を防ぐにはどうすればよいですか?インターネットの発展と普及に伴い、ますます多くの Web サイトやアプリケーションがボット攻撃の脅威にさらされ始めています。ユーザー情報のセキュリティを保護し、優れたユーザー エクスペリエンスを提供するために、開発者はプロジェクトに検証コードとボット攻撃を防ぐ対策を実装する必要があります。この記事では、PHP プロジェクトで検証コードを実装し、ボット攻撃を防ぐ方法を紹介します。 1. 検証コードの実装 検証コードは、ロボットの攻撃を防ぐための一般的な方法です。ユーザーはログインまたは登録時に認証コードを入力する必要があります。

PHP プロジェクトでユーザー認証と権限制御を実装するにはどうすればよいですか? PHP プロジェクトでユーザー認証と権限制御を実装するにはどうすればよいですか? Nov 02, 2023 pm 12:38 PM

PHP プロジェクトでユーザー認証と権限制御を実装するにはどうすればよいですか?最新の Web アプリケーションでは、ユーザー認証と権限制御は最も重要な機能の 1 つです。ユーザー認証はユーザーの ID と権限を確認するために使用され、権限制御はシステム内のさまざまなリソースに対するユーザーのアクセス権限を決定します。 PHP プロジェクトにユーザー認証と権限制御を実装すると、ユーザー データのセキュリティが保護され、システムの承認されたユーザーのみが機密情報にアクセスできるようになります。この記事では、ユーザー認証と権限制御機能を実装して、

PHPプロジェクトで画像処理やウォーターマーク追加を実装するにはどうすればよいですか? PHPプロジェクトで画像処理やウォーターマーク追加を実装するにはどうすればよいですか? Nov 02, 2023 pm 01:21 PM

PHPプロジェクトで画像処理やウォーターマーク追加を実装するにはどうすればよいですか?近年、インターネットの急速な発展に伴い、Webデザインやアプリケーション開発において画像の利用がますます重要な役割を果たしています。高品質な画像を求めるユーザーのニーズに応えるためには、PHP プロジェクトに画像処理やウォーターマーク追加機能を実装する必要があります。この記事では、この目標を達成するための簡単で効果的な方法を紹介します。 1. PHP の画像処理関数 PHP は、画像のズーム、トリミング、回転などに役立つ一連の画像処理関数を提供します。

Deployer に基づく PHP プロジェクトの自動デプロイメントに関するチュートリアル Deployer に基づく PHP プロジェクトの自動デプロイメントに関するチュートリアル Jul 16, 2023 pm 11:38 PM

Deployer に基づく PHP プロジェクトの自動デプロイメント チュートリアルの紹介: PHP プロジェクトを開発するとき、多くの場合、コードをサーバーにデプロイする必要があります。従来の導入方法では、ファイルを手動でアップロードしたり、データベースをバックアップしたりするなど、面倒な手順が必要になる場合があります。効率を高めてエラーを減らすために、自動展開ツールを使用できます。 Deployer は、PHP プロジェクト用の強力な自動デプロイメント ツールで、コードをデプロイし、サーバーを迅速かつ確実に構成するのに役立ちます。この記事ではDeployeの使い方を紹介します。

PHP プロジェクトでパフォーマンス チューニングとリソースの最適化を実行するにはどうすればよいですか? PHP プロジェクトでパフォーマンス チューニングとリソースの最適化を実行するにはどうすればよいですか? Nov 03, 2023 pm 05:21 PM

PHP プロジェクトでパフォーマンス チューニングとリソースの最適化を実行するにはどうすればよいですか?インターネットの急速な発展に伴い、開発言語として PHP を使用するアプリケーションがますます増えています。 PHP は使いやすさと柔軟性があるため、多くの開発者が Web サイトやアプリケーションの構築に PHP を使用することを選択しています。ただし、PHP の動的で解釈された性質により、一部の開発者はパフォーマンスの問題に直面する可能性があります。この記事では、PHP プロジェクトでパフォーマンス チューニングとリソースの最適化を実行して、アプリケーションのパフォーマンスと応答性を向上させる方法について説明します。 1. 適切なデータ構造を使用する

PHP プロジェクトに電子メール送信および通知機能を実装するにはどうすればよいですか? PHP プロジェクトに電子メール送信および通知機能を実装するにはどうすればよいですか? Nov 02, 2023 pm 03:48 PM

PHP プロジェクトに電子メール送信および通知機能を実装するにはどうすればよいですか?今日のインターネット時代において、電子メールは人々の日常生活に欠かせないものとなっています。 PHP 開発者にとって、電子メール送信および通知機能の実装は、多くのプロジェクトで非常に一般的な要件です。この記事では、PHP プロジェクトにメール送信機能と通知機能を実装する方法と、いくつかの実践的な方法とテクニックを紹介します。 1. 要件を決定する 電子メール送信および通知機能の実装を開始する前に、まずプロジェクトの具体的な要件を明確にする必要があります。電子メールの送信と通知にはさまざまな方法があります

See all articles