thinkphp中的logic和service层的用处:
logic:顾名思义,主要是用来堆砌业务代码的;
service:一般跟API接口做对接的代码都放在这里。
不管框架如何分层,本质上就是一个代码组织形式,为了方便人去阅读的,如果你高兴,你把所有代码放在一个文件没问题,只要你看的懂,维护的了。
同时我们要理解,框架是给我们方便的,不要被框架束缚,也不要为了学框架而学框架
thinkphp模型层Model、Logic、Service讲解
ThinkPHP支持模型的分层 ,除了Model层之外,我们可以项目的需要设计和创建其他的模型层。
通常情况下,不同的分层模型仍然是继承系统的\Think\Model类或其子类,所以,其基本操作和Model类的操作是一致的。
例如在Home模块的设计中需要区分数据层、逻辑层、服务层等不同的模型层,我们可以在模块目录下面创建Model、Logic和Service目录,把对用户表的所有模型操作分成三层:
● 数据层:Home\Model\UserModel 用于定义数据相关的自动验证和自动完成和数据存取接口
● 逻辑层:Home\Logic\UserLogic 用于定义用户相关的业务逻辑
● 服务层:Home\Service\UserService 用于定义用户相关的服务接口等
三个模型层的定义如下:
Model类:Home\Model\UserModel.class.php
namespace Home\Model; class UserModel extends \Think\Model{ }
实例化方法:D('User');
Logic类:Home\Logic\UserLogic.class.php
namespace Home\Logic; class UserLogic extends \Think\Model{ }
实例化方法:D('User','Logic');
Api类:Home\Api\UserApi.class.php
namespace Home\Api; class UserApi extends \Think\Model{ }
实例化方法:D('User','Api');
D方法默认操作的模型层由DEFAULT_M_LAYER参数配置,我们可以改变默认操作的模型层为Logic层,例如:
'DEFAULT_M_LAYER' => 'Logic', // 默认的模型层名称
这样,当我们调用:
$User = D('User');
的时候其实是实例化的 UserLogic类,而不是UserModel类。
推荐教程:PHP教程

thinkphp是国产框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了关于使用think-queue来实现普通队列和延迟队列的相关内容,think-queue是thinkphp官方提供的一个消息队列服务,下面一起来看一下,希望对大家有帮助。

thinkphp基于的mvc分别是指:1、m是model的缩写,表示模型,用于数据处理;2、v是view的缩写,表示视图,由View类和模板文件组成;3、c是controller的缩写,表示控制器,用于逻辑处理。mvc设计模式是一种编程思想,是一种将应用程序的逻辑层和表现层进行分离的方法。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了使用jwt认证的问题,下面一起来看一下,希望对大家有帮助。

thinkphp扩展有:1、think-migration,是一种数据库迁移工具;2、think-orm,是一种ORM类库扩展;3、think-oracle,是一种Oracle驱动扩展;4、think-mongo,一种MongoDb扩展;5、think-soar,一种SQL语句优化扩展;6、porter,一种数据库管理工具;7、tp-jwt-auth,一个jwt身份验证扩展包。

本篇文章给大家带来了关于ThinkPHP的相关知识,其中主要整理了使用think-queue实现redis消息队列的相关问题,下面一起来看一下,希望对大家有帮助。

thinkphp查询库是否存在的方法:1、打开相应的tp文件;2、通过“ $isTable=db()->query('SHOW TABLES LIKE '."'".$data['table_name']."'");if($isTable){...}else{...}”方式验证表是否存在即可。

在thinkphp3.2中,可以利用define关闭调试模式,该标签用于变量和常量的定义,将入口文件中定义调试模式设为FALSE即可,语法为“define('APP_DEBUG', false);”;开启调试模式将参数值设置为true即可。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

WebStorm Mac version
Useful JavaScript development tools

Dreamweaver CS6
Visual web development tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 Chinese version
Chinese version, very easy to use
