热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkPHP入门心得

之前我自己一直在自学PHP,因为之前接受过JAVA培训,所以学习起PHP来还算容易,而且在学习期间自己租了空间边学边做了一个自己感兴趣的小站,从页面结构、样式到程序实现都是自己用Editplus

3月底,我收到了心仪公司的实习通知,4月1号正式进入公司开始工作.

之前我自己一直在自学PHP,因为之前接受过JAVA培训,所以学习起PHP来还算容易,而且在学习期间自己租了空间边学边做了一个自己感兴趣的小站,从页面结构、样式到程序实现都是自己用Editplus一行一行写出来的,虽说技术含量很低,但自己也动了不少脑子,在网上查了不少东西。第一个版本完全就是面向过程的混合式页面,之后自学了Smarty模板,实现了表现层和逻辑层的分离,很有成就感。

公司用的是ThinkPHP框架,刚到那就塞给我一个任务---EDM,但是时间没有限制太紧,给了我很多时间去接触公司用到的工具。老大让我看ThinkPHP快速入门,起初的两天一直是云里雾里,感觉一点都看不懂,现在知道,是我当时忽略了一个重要的东西---MVC,这个框架如果用MVC的思想去看很快就可以看明白,之后几天边看入门边看公司代码,终于在一个星期内我把整个框架的运行模式和结构搞懂了,剩下的就只是应用了。

以下是我对ThinkPHP的理解:

1.目录结构中的Action就是MVC中的Control层;Model就是MVC中的Model层,Tpl即MVC中的View层;

2.ThinkPHP的Model层是我见过最强大的Model层,用过Java的Hibernate,这个还需要对数据库表进行配置,感觉步骤很繁琐,但是ThinkPHP的Model层只需要起一个与数据库表同名的Model类就可以实现ORM,甚至根本不需要建Model类就可以用框架的M('表名')方法实现ORM,目前感觉很方便;

3.如果要添加一个新的模块或功能,步骤很简单:(1)用到了哪个数据库表,建立相应的Model类,如需要可在Model类中添加自定义方法;(2)建新的Action类即新模块,在Action类中新建方法,即功能;(3)如需页面,在Tpl中按照Action名称和方法名为模板命名即可;这样一个基本的模块就done了;

4.经过老大的指导,告诉我Model层中是不应该处理任何业务的(哪怕一个简单的运算),Model层中应该对业务是一无所知的,它只进行数据库操作,但是一些业务放在Action中也不合适,所以这个框架缺少一个中间层,这样就可以使框架分工更加清晰,添加功能和修改代码效率更高,错误更少。

希望日后会对这个框架有更深刻的理解。


推荐阅读
  • 本文探讨了PHP中使用命名空间和自动加载机制的重要性,特别是在大型项目中,如何有效管理和加载文件,避免代码冗余,提高开发效率。 ... [详细]
  • 本文探讨了缓存系统中的两个关键问题——缓存穿透与缓存失效时的雪崩效应,以及这些问题的解决方案。此外,文章还介绍了数据处理、数据库拆分策略、缓存优化、拆分策略、应用架构演进及通信协议的选择等内容。 ... [详细]
  • jquery java 文件上传_jQuery文件上传
    插件描述:这是一个文件上传的展示,看很多插件,并不满意就自己写了一个,可能兼容性不是很好,没有准确进行测试过& ... [详细]
  • 探讨了在Express应用中,如何实现同一路由下既返回HTML文件又发送JSON数据的技术挑战与解决方案。 ... [详细]
  • 本文探讨了Java异常处理的本质,提出了设计模式以优化异常处理,并分析了在AOP模型中异常处理的应用。文章强调了正确使用Java异常对于提升代码质量和维护性的关键作用。 ... [详细]
  • 模型-视图-控制器(MVC)模式在软件开发中极为普遍,不仅被广泛应用于Web框架,也在GUI客户端中得到应用。然而,这种模式的实际应用可能并非完全遵循原初的设计理念,有时更像是一个营销概念。本文将深入探讨MVC及其相关模式MVP、MVVM和MVA的异同,以及它们各自的应用场景。 ... [详细]
  • iOS 面试实战:15 道经典面试题及解析
    本文精选了15道iOS面试题,并提供了详细的解答思路。旨在帮助开发者更好地准备面试,避免因准备不足而导致的紧张和焦虑。 ... [详细]
  • 深入理解SAP Fiori及其核心概念
    本文详细介绍了SAP Fiori的基本概念、发展历程、核心特性、应用类型、运行环境以及开发工具等,旨在帮助读者全面了解SAP Fiori的技术框架和应用场景。 ... [详细]
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 2020年腾讯PCG后端开发实习生面试经历分享
    本文详细记录了2020年腾讯平台与内容事业群(PCG)后端开发实习生岗位的面试过程,包括初试和复试的主要内容和技术考察点。 ... [详细]
  • 本文旨在为初学者提供一个详细的指南,从零开始学习如何使用 ASP.NET MVC5 和 Entity Framework 6 (EF6) 搭建项目。通过逐步指导,帮助读者理解 MVC 架构的核心概念,并掌握基本的操作方法。 ... [详细]
  • 本文介绍了如何在Spring框架中配置和使用定时任务,包括初始化配置和动态启动定时器的方法。通过示例代码展示了如何利用Spring的TaskScheduler接口来创建和管理定时任务。 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 尽管已经查阅了相关说明,但关于Html.Partial和Html.RenderPartial在ASP.NET MVC3中的使用,我仍然感到困惑。 ... [详细]
  • 本文详细介绍了如何利用 Python 语言从文本文件中读取数据,并将其存储为字典格式,涵盖多种实用技巧和示例代码。 ... [详细]
author-avatar
狗狗狗699_250
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有