0

0

一个简单的部门案例详解(PHP代码实例)

易达

易达

发布时间:2020-05-31 18:45:24

|

2216人浏览过

|

来源于php中文网

原创

本文目标:

1、学会如何分析一个项目,按照一定的思路

案例:

一、    使用面向对象的方式要求最终实现的效果为:

1.png

要求:

其中必须要使用的知识点:

立即学习PHP免费学习笔记(深入)”;

1.     类的定义

2.     类的实例化

3.     对象的引用赋值=&

4.     析构函数

5.     构造函数

这个案例要实现的效果其实算很简单,但是重点是,你的思路很清楚吗?你的思路是否具备一定的条理性,或者说做了许多项目,你有没有总结出一套你自己的系统性的思路方案呢?我的总结如下:

3个分析:

1、流程分析

2、具体的实现分析

3、 数据库分析

3个执行:

 1.创建数据库,初始化数据库数据(  项目的启动数据 )

 2.创建类,实现类

 3.写流程

接下来我们一个一个的分析

1、流程分析

1、获取所有部门信息

2、获取单个部门信息

3、写一个对象引用赋值=&的测试

      例如$jordon1=&$jordon

4、在所有逻辑最后写一句话:应用程序到此为止

5、执行了一个类的析构函数

2、具体的实现分析

1、第一步:识别对象(找名词)

       根据上面的流程我们得出的对象只有一个:

aspx1财付通支付接口源码
aspx1财付通支付接口源码

本支付接口的特点,主要是用xml文件来记录订单详情和支付详情。代码比较简单,只要将里面的商户号、商户key换成你自己的,将回调url换成你的网站,就可以使用了。通过这个实例也可以很好的了解一般在线支付接口的基本工作原理。其中的pay.config文件记录的是支付详情,order.config是订单详情

下载

       1.部门

2、第二步:识别对象的属性( 数据名词+结合现实世界去分析+结合具体的场景 )

       1.部门:属性有:id,名称

3、第三步:识别对象的方法( 动词+结合现实世界去分析+结合具体的场景 )

      1.部门   方法有

           1.获取所有部门信息

           2.获取单个部门信息

因为所有的数据都要保存到数据库,所有的数据都要从数据库获取,所以接下来

数据库分析:

表:(有多少个对象 至少就有多少个表)

 1.部门    字段 = 对象的属性

分析完成后,我们接下来做具体的操作

1、创建数据库,初始化数据库数据(  项目的启动数据 )

创建数据库,名字我们就叫做depart

创建数据库.png

为数据库创建表,表明就做叫部门表

4创建表.png

分析是否有初始化数据,(我们可以称之为项目的启动数据,没有这些数据,项目无法启动,)然后将这些初始化数据写入数据库

综上分析,初始化数据就是3个部门

所以接下来我们初始化数据库

5初始化数据.png

2.创建类,实现类

创建部门类:

为了方便管理,我们把所有的类放到model文件夹中,然后这个类文件我们就叫做Depart.class.php,然后我们把上面分析得出来的类的属性和方法,写入部门类中

model/Depart.class.php

<?php
//部门类
class Depart{
    //定义属性 id,名称
    public $id = "";
    public $name = "";
    public $conn = "";//数据库连接
    public $tableName = "depart";//表名
    //构造函数
    public function __construct( $id,$name ){
        //初始化属性
        $this->id = $id;
        $this->name = $name;
        //初始化行为 初始化方法
        $this->initConn();
    }
    //析构函数 销毁数据库连接
    public function __destruct(){
        //销毁连接
        if( $this->conn ){
            mysqli_close( $this->conn );
            echo "销毁了连接<br/>";
        }
    }
    
    //定义方法
    //创建公共的方法 获取数据库连接
    public function initConn(){
        $config = Array(
            "hostname"=>"127.0.0.1",
            "database"=>"depart",
            "username"=>"root",
            "password"=>"root"
        );
        $this->conn = mysqli_connect( $config['hostname'],$config['username'] ,$config['password'],
                $config['database']);
    }
    // 1.获取所有部门信息
    public function getAll(){
        //创建数据库连接
        $conn = $this->conn;
        //写sql
        $sql = " select * from ".$this->tableName;
        //执行sql
        $result = mysqli_query( $conn,$sql );
        //获取数据
        // mysqli_fetch_all($result)//特点:不会包含字段名
        $list = Array();
        while( $row = mysqli_fetch_assoc(  $result ) ){
            $list[] = $row;
        }
        //返回数据
        return $list;
    }
    // 2.获取单个部门信息
    public function getOne( $id ){
        //创建数据库连接
        $conn = $this->conn;
        //写sql
        $sql = " select * from ".$this->tableName." where id= ".$id; 
        //执行sql
        $result = mysqli_query( $conn,$sql );
        //获取数据
        // mysqli_fetch_all($result)//特点:不会包含字段名
        $list = Array();
        while( $row = mysqli_fetch_assoc(  $result ) ){
            $list[] = $row;
        }
        //返回数据
        return $list;
    }
}
?>

3.写流程

接下来,我们根据流程分析的结果来写具体的流程,流程代码如下:

<?php
//引入类文件
require_once "model/Depart.class.php";

//写流程
// 1.获取所有部门信息
//
$humanResourseDepartment = new Depart(2,"行政部门");
//通过对象调用方法  
$alllist = $humanResourseDepartment->getAll();


echo "<b>所有部门信息为:</b><br/>";
print_r( $alllist );
echo "<br/>";
// 2.获取单个部门信息 = 开发部门
$devDepartment = $humanResourseDepartment ->getOne( 1 );
echo "<b>开发部门信息:</b>  <br/>";
print_r( $devDepartment );
echo "<br/>";
// 3.对象引用赋值=&的测试
//      $jordon1=&$jordon
$humanResourseDepartment1 =& $humanResourseDepartment;
echo "修改前:行政部门的名字为:".$humanResourseDepartment->name."<br/>";
//修改
$humanResourseDepartment1->name = "人力部门";
echo "修改后:行政部门的名字为:".$humanResourseDepartment->name."<br/>";
// 4.在所有逻辑最后写一句话:应用程序到此为止
echo "<b>应用程序到此为止</b>  <br/>";

// 5.执行了一个类的析构函数
?>

运行结果如下:

所有部门信息为:Array ( [0] => Array ( [id] => 1 [name] => 开发部门 ) [1] => Array ( [id] => 2 [name] => 行政部门 ) [2] => Array ( [id] => 3 [name] => 后勤部门 ) )开发部门信息:Array ( [0] => Array ( [id] => 1 [name] => 开发部门 ) )修改前:行政部门的名字为:行政部门修改后:行政部门的名字为:人力部门应用程序到此为止销毁了连接

(二)、总结:

1、主要记录了一下我的项目分析思路

希望本文能给大家带来一定的帮助,谢谢!!

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

3

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

12

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

69

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

59

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

46

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

24

2026.02.27

Golang 高级特性与最佳实践:提升代码艺术
Golang 高级特性与最佳实践:提升代码艺术

本专题深入剖析 Golang 的高级特性与工程级最佳实践,涵盖并发模型、内存管理、接口设计与错误处理策略。通过真实场景与代码对比,引导从“可运行”走向“高质量”,帮助构建高性能、可扩展、易维护的优雅 Go 代码体系。

20

2026.02.27

Golang 测试与调试专题:确保代码可靠性
Golang 测试与调试专题:确保代码可靠性

本专题聚焦 Golang 的测试与调试体系,系统讲解单元测试、表驱动测试、基准测试与覆盖率分析方法,并深入剖析调试工具与常见问题定位思路。通过实践示例,引导建立可验证、可回归的工程习惯,从而持续提升代码可靠性与可维护性。

4

2026.02.27

漫蛙app官网链接入口
漫蛙app官网链接入口

漫蛙App官网提供多条稳定入口,包括 https://manwa.me、https

348

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 12.9万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号