백엔드 개발 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 프로젝트에서 인증 코드를 구현하고 봇 공격을 방지하는 방법은 무엇입니까? PHP 프로젝트에서 인증 코드를 구현하고 봇 공격을 방지하는 방법은 무엇입니까? Nov 03, 2023 pm 05:40 PM

PHP 프로젝트에서 인증 코드를 구현하고 봇 공격을 방지하는 방법은 무엇입니까? 인터넷이 발전하고 대중화되면서 점점 더 많은 웹사이트와 애플리케이션이 봇 공격의 위협을 받기 시작했습니다. 사용자 정보 보안을 보호하고 좋은 사용자 경험을 제공하기 위해 개발자는 프로젝트에서 봇 공격을 방지하기 위한 인증 코드 및 조치를 구현해야 합니다. 이 글에서는 PHP 프로젝트에서 인증 코드를 구현하고 봇 공격을 방지하는 방법을 소개합니다. 1. 인증코드 구현 인증코드는 로봇공격을 예방하기 위한 일반적인 방법이다. 사용자는 로그인이나 회원가입 시 인증코드를 입력해야 합니다.

PHP 프로젝트에서 데이터 백업 및 복구 기능을 구현하는 방법은 무엇입니까? PHP 프로젝트에서 데이터 백업 및 복구 기능을 구현하는 방법은 무엇입니까? Nov 04, 2023 pm 04:30 PM

PHP 프로젝트에서 데이터 백업 및 복구 기능을 구현하는 방법은 무엇입니까? PHP 프로젝트를 개발하고 관리하는 과정에서 데이터 백업 및 복구 기능은 매우 중요합니다. 우발적인 데이터 손실을 방지하거나 프로젝트 마이그레이션 및 업그레이드 중 데이터 보안을 보장하려면 데이터 백업 및 복구 방법을 마스터해야 합니다. 이 기사에서는 PHP 프로젝트에서 데이터 백업 및 복구 기능을 구현하는 방법을 소개합니다. 1. 데이터 백업 정의 백업 경로: 먼저 백업 파일을 저장하는 데 사용되는 경로를 정의해야 합니다. 프로젝트 구성 파일에서 정의할 수 있습니다.

PHP 프로젝트에서 사용자 인증 및 권한 제어를 구현하는 방법은 무엇입니까? PHP 프로젝트에서 사용자 인증 및 권한 제어를 구현하는 방법은 무엇입니까? Nov 02, 2023 pm 12:38 PM

PHP 프로젝트에서 사용자 인증 및 권한 제어를 구현하는 방법은 무엇입니까? 최신 웹 애플리케이션에서 사용자 인증 및 권한 제어는 가장 중요한 기능 중 하나입니다. 사용자 인증은 사용자의 신원과 권한을 확인하는 데 사용되는 반면, 권한 제어는 시스템의 다양한 리소스에 대한 사용자의 액세스 권한을 결정합니다. PHP 프로젝트에서 사용자 인증 및 권한 제어를 구현하면 사용자 데이터의 보안을 보호하고 시스템의 승인된 사용자만 민감한 정보에 액세스할 수 있도록 할 수 있습니다. 이 기사에서는 사용자 인증 및 권한 제어 기능을 구현하는 데 도움이 되는 기본 방법을 소개합니다.

배포자 소개 튜토리얼: PHP 프로젝트의 배포 프로세스 최적화 배포자 소개 튜토리얼: PHP 프로젝트의 배포 프로세스 최적화 Jul 13, 2023 pm 05:22 PM

배포자 소개 튜토리얼: PHP 프로젝트의 배포 프로세스 최적화 소개: 현대 개발에서 자동화된 배포는 필수 불가결한 부분이 되었습니다. Deployer는 배포 프로세스를 단순화하고 효율성을 향상시키는 데 도움이 되는 뛰어난 PHP 프로젝트 배포 도구입니다. 이 기사에서는 Deployer의 기본 사용법을 소개하고 Deployer를 통해 PHP 프로젝트의 배포 프로세스를 최적화하는 방법을 코드 예제를 통해 보여줍니다. 1. 왜 Deployer를 선택하나요? Deployer는 경량입니다.

PHP 프로젝트에서 이미지 처리 및 워터마크 추가를 구현하는 방법은 무엇입니까? PHP 프로젝트에서 이미지 처리 및 워터마크 추가를 구현하는 방법은 무엇입니까? Nov 02, 2023 pm 01:21 PM

PHP 프로젝트에서 이미지 처리 및 워터마크 추가를 구현하는 방법은 무엇입니까? 최근 인터넷의 급속한 발전과 함께 웹 디자인 및 애플리케이션 개발에서 이미지의 사용이 점점 더 중요한 역할을 하고 있습니다. 고품질 이미지에 대한 사용자의 요구를 충족시키기 위해 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의 사용 용이성과 유연성으로 인해 많은 개발자가 웹사이트와 애플리케이션 구축에 PHP를 선택합니다. 그러나 PHP의 동적 및 해석 특성으로 인해 일부 개발자는 성능 문제에 직면할 수 있습니다. 이 기사에서는 PHP 프로젝트에서 성능 조정 및 리소스 최적화를 수행하여 애플리케이션 성능과 응답성을 향상시키는 방법을 살펴봅니다. 1. 적절한 데이터 구조를 사용하세요

Xiaomi Mall의 PHP 프로젝트는 무엇입니까? Xiaomi Mall의 PHP 프로젝트는 무엇입니까? Jul 27, 2023 pm 02:16 PM

Xiaomi Mall PHP 프로젝트에는 다음이 포함됩니다. 1. 전체 쇼핑몰 시스템의 핵심 기능 중 하나인 사용자 관리 시스템은 사용자 요청을 처리하고 사용자 신원 및 데이터베이스 상호 작용 등을 확인합니다. 2. 제품 관리 시스템은 모든 제품을 관리합니다. 쇼핑몰에서 판매되는 상품의 추가, 삭제, 수정, 재고 관리, 가격 조정 등 3. 쇼핑몰 운영의 중요한 부분을 담당하는 주문 관리 시스템 4. 주문의 라이프사이클을 관리하는 프로모션 활동 관리 시스템 5. 데이터 통계 시스템, 데이터베이스에서 데이터 추출, 데이터 계산 수행, 보고서 생성 및 관리자에게 표시.

See all articles