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

phpthinkphp框架快速入门

本文简要的介绍了如何从无到有的创建一个基于thinkphp框架的项目,并对项目进行相应的配置以及一些基本原理的介绍,在介绍的过程中涉及到的具体内容都可以去thinkphp官方网站下载核心包.

本文简要的介绍了如何从无到有的创建一个基于thinkphp框架的项目,并对项目进行相应的配置以及一些基本原理的介绍,在介绍的过程中涉及到的具体内容都可以去thinkphp官方网站下载核心包或者完全包、帮助文档进行学习.

那这里工程中我们可以直接下载核心包即可,可以将该包解压放置在任何位置,只要我们的项目能够访问得到,假设我们的项目在coomy文件夹下,统计目录放核心文件夹名为thinkphp.

入口文件

首次访问项目时访问的php文件,在开始项目之前,可以在任意位置创建一个php文件,在该文件中引入thinkphp核心文件,并自动生成项目目录,在浏览器中访问该入口文件后,弹出“Hello!欢迎使用thinkPHP!”的页面说明项目创建成功,下面的示例在coomy文件夹中创建create.php文件,并加入以下代码:

require '../thinkphp/ThinkPHP.php';

App::run();

这样在浏览器中访问http://localhost/coomy/create.php后,便会发现目录coomy中生成了以下文件夹:

|—-Common 公共函数区

|—-Conf       配置
|—-Lang       语言包
|—-Lib
      |—- Action 控制器
      |—- Model 模型
|—-Runtime 运行时缓存等
|—-Tpl 模板

控制器用来接收用户的输入,并调用模型和视图去完成用户的需求,模型则定义了一个网站的数据库相关业务逻辑,这是MVC框架的基本概念,这里不做过多介绍.

URL访问说明

http://localhost/index.php/ActionName/FunctionName

以上URL表示访问项目下的ActionName控制器下的FunctionName函数,那么接下来就只要创建控制器就行了.

创建控制器:

定义类文件—定义类方法,存放位置Lib/Action.

命名规则:

控制器名+Action.class.php

那我们直接在Lib/Action文件夹中创建一个CoomyAction.class.php文件,并打开文件创建控制器:

  1. class CoomyAction extends Action{ 
  2.  function index(){ 
  3.    echo "hello world!"
  4.  } 
  5.  function hello(){ 
  6.    echo "hello php"
  7.  } 

由此创建之后,假如我们想要输出”hello php”,则可以通过localhost/index.php/coomy/hello即可,如果想输出”hello world!”的话,则直接通过localhost/index.php/coomy即可,因为index函数是默认的.

注意:index.php必须是入口文件,命名可以随意

项目配置文件

thinkphp所有配置项的默认值都在其核心代码的Common/convention.php中,而如果我们想要自定义的话,则可以在我们的项目目录中找到Conf文件夹下的config.php,并在该文件中对我们的项目进行配置,如数据库连接配置:

  1. true, // 是否开启调试模式 
  2. 'DB_TYPE' => 'mysql'// 数据库类型 
  3. 'DB_HOST' => 'localhost'// 服务器地址 
  4. 'DB_NAME' => 'test'// 数据库名 
  5. 'DB_USER' => 'root'// 用户名 
  6. 'DB_PWD' => ''// 密码 
  7. 'DB_PORT' => 3306, // 端口 
  8. 'DB_PREFIX' => ''// 数据库表前缀 
  9. 'DB_SUFFIX' => ''// 数据库表后缀 
  10. 'DB_FIELDTYPE_CHECK' => false, // 是否进行字段类型检查 
  11. 'DB_FIELDS_CACHE' => true, // 启用字段缓存 
  12. 'DB_CHARSET' => 'utf8'// 数据库编码默认采用utf8 
  13. 'DB_DEPLOY_TYPE' => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 
  14. 'DB_RW_SEPARATE' => false, // 数据库读写是否分离 主从式有效 
  15.  ); 
  16. ?> 

以上便对我们的项目数据库进行了配置,有了这些配置之后,我们便可以在控制器中,对数据库进行添删改操作了,如:

  1. M(“tableName”)->add($data//向tableName表中插入data数据 
  2. M(“tableName”)->save($data//向tableName表中更新data数据 
  3. M(“tableName”)->select() //读取tableName表中的数据 
  4. M(“tableName”)->delete($id//从tableName表中删除id=$id的数据 

使用模板

说了半天,都是和数据库交互的,这一般都是后台的代码,那前台的代码写在哪里?当然,是在模板中,模板使一个页面的UI和响应处理程序分隔开来,使他们各行其道,这也正是MVC的精髓吧,在ThinkPHP中,模板与控制器是要一一对应的.

存放位置:模板存放于Tpl/default目录之下;

命名规则(对应):建立一个与控制器齐名的文件夹,在其中建立一个与控制器函数齐名的html文件;

localhost/Lib/Action/TestAction.class.php (function myTestFun..)

localhost/Tpl/test/mytestfun.html

使用模板:在控制器的任意函数中调用display()方法,即可通过url访问该函数显示模板,那进一步我们也就可以在模板函数中,对数据进行处理或者控制模板的输出了.

除此之外,thinkphp还内置了模板引擎,支持很多模板标签,如变量标签,我们可以在HTML文件的任意位置使用{$attriName}类似的标签,来从后台控制器中获取值,那在控制器中则需要指派该变量,最简单的方法则是通过属性指派:

1 $this->attriName = "value";

如此,模板引擎便会通过变量输出attriName,如此一来,模板负责显示变量,而控制器负责处理.我们便可以通过thinkphp开始我们的开发了.


推荐阅读
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 数据库锁的分类和应用
    本文介绍了数据库锁的分类和应用,包括并发控制中的读-读、写-写、读-写/写-读操作的问题,以及不同的锁类型和粒度分类。同时还介绍了死锁的产生和避免方法,并详细解释了MVCC的原理以及如何解决幻读的问题。最后,给出了一些使用数据库锁的实际场景和建议。 ... [详细]
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
  • 今天写一篇blog,已经多长时间没有更了,两个月了吧,没办法,现在银行开发,不能连外网,天天用虚拟机,真烦今天随手写点东西,主要是这两天对于springboot启动的分析,有所领悟 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 本文讲述了作者从最初对软件工程的选择迷茫到逐渐喜欢并坚持学习的经历。作者在大学期间通过学习专业课和参与项目开发,不断挑战自己并取得成就感。虽然曾考虑过转专业和复读,但最终决定坚持学习软件工程,并为自己的未来努力奋斗。作者还提到了大学生活与自己最初的预期不同,但对此并没有太多抱怨。 ... [详细]
  • 使用J2SE模拟MVC模式开发桌面应用程序的工程包的介绍
    以我开发过的一个娱乐管理系统为例:下图为我系统的业务逻辑的MVC流程:下图为以Eclipse开发中各包的说明:转载于:https:blog ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
author-avatar
手机用户2502887703
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有