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

phpsimplemvc,学习猿地一个简单的PHPsimplemvc(提供基本的功能)

ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt

ps: 写的第一个,不足之处,欢迎拍砖

---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说 模型中的toArray toJson setAttribute getAttribute)以此加深理解,提高自己

快速开始

git clone https://github.com/jc91715/php-simple-mvc.git project

访问 your.domain.app/

路由 /xxxx/xxxxx

eg

/index/index 映射到 controllers/indexController 下的 index 方法

controller

在controllers文件下 继承自 basicController

eg

//controllers/indexController.php

class indexController extends basicController

{

public function index()

{

}

}

数据库 配置在 config 文件夹下

eg

//config/database.php

return [

'host' =>'localhost',

'dbname' =>'demo4',

'username' => 'homestead',

'password' =>'secret'

];

model

在 model 文件夹下 继承 baseModel 提供 增删改查功能

eg

//model/userModel.php

class userModel extends baseModel

{

$table='users';

}

如何使用

$user=new userModel()

$user->find($id)

$user->get()

$user-create($arrayData)

$user->update($arrayData,$id) or $user->find(1)->update($arrayData) or

$user=$user->find($id)

$user->name=xxxx

$user->save()

$user->delete($id)

//转换为数组

$user->find($id)->toArray()

//转换为json

$user->toJson()

//提供了两个简单的hook 如果你取出数据之前需要对数据进行格式化 eg

public function getName($val)

{

return ucwords($val);

}

//如果你插入数据之前需要对数据进行格式化(一个字段需要是json格式的) eg

public function setName($val)

{

return json_encode($val);

}

//后续可能会有 beforeUpdate() afterUpdate beforeCreate afterCreate 等等

//如果你想在laravel 试试(只是试试而已~~) 可以让 user 继承 baseModel 在构造函数中手动配置下数据库就可以了

//$config = include 'config/database.php';

$this->dbh = new PDO(

"mysql:host=localhost;dbname=xxxx", 'username', 'password']

, [PDO::ATTR_PERSISTENT => true]

);

view

支持原生 php 模板(默认推荐) 和 自定义 html模板(正则匹配是 是从php核心技术与最佳实践上引用的)

ps: 找不到原生模板的情况下会去找 自定义模板

//不推荐使用

//模板标签

{$var}

{foreach $arr}

{$V}

{/foreach}

{if}

{endif}

1 在控制其中使用

eg

//controllers/indexController

class indexController extends basicController

{

public function index()

{

$title='index done'

view('index');//加载 view/php/index.view.php

view('index/index');//加载 view/php/index/index.view.php

view('index',compact('title'));//传递变量 $title 到视图上

}

}

2 在视图中使用(为了代码重用 包含header 和 footer等等需要重用的文件)

eg

// view/php/index.view.php

//包含 view/php/common/header.view.php 并传递数据(compact('title') 是从控制器传递过来的)

//view/php/common/header.view.php

jc91715-php-simple-mvc

提供widget

等等 widget 有什么用

不是有 view 么

请 瞅一下这里 @leo

使用widget

必须继承 basicWidget.php 并实现 display 方法

eg

// widget/indexWidget.php

class indexWidget extends basicWidget

{

public function display($val){

//$val 是从视图传过来的值

return "widget/index/index.widget加载成功(我是从view传过来的经过了widget的处理) ";

}

}

在视图中调用

//view/php/index.widget.php

//加载 widget/index/index.widget.php

//加载 widget/index/test.widget.php

END



推荐阅读
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • 本文介绍了一个Magento模块,其主要功能是实现前台用户利用表单给管理员发送邮件。通过阅读该模块的代码,可以了解到一些有关Magento的细节,例如如何获取系统标签id、如何使用Magento默认的提示信息以及如何使用smtp服务等。文章还提到了安装SMTP Pro插件的方法,并给出了前台页面的代码示例。 ... [详细]
  • springboot项目引入jquery浏览器报404错误的解决办法
    本文介绍了在springboot项目中引入jquery时,可能会出现浏览器报404错误的问题,并提供了解决办法。问题可能是由于将jquery.js文件复制粘贴到错误的目录导致的,解决办法是将文件复制粘贴到正确的目录下。如果问题仍然存在,可能是其他原因导致的。 ... [详细]
  • React项目中运用React技巧解决实际问题的总结
    本文总结了在React项目中如何运用React技巧解决一些实际问题,包括取消请求和页面卸载的关联,利用useEffect和AbortController等技术实现请求的取消。文章中的代码是简化后的例子,但思想是相通的。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
author-avatar
手机用户2602899031
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有