php-laravel框架学习笔记1_第1页
php-laravel框架学习笔记1_第2页
php-laravel框架学习笔记1_第3页
php-laravel框架学习笔记1_第4页
php-laravel框架学习笔记1_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

laravel框架①-laravel简介laravel是目前一个比较主流的框架,现在很多互联网的公司基本都在使用该框架。该框架是基于symfony【国外一款非常流行的框架:由于国内手册不是很齐全,没有多少公司使用】的一个国外的MVC框架。laravel的定位就是做一个简洁使用程序员的框架。为web艺术而开发。注意:由于这些资源信息是在国外,大家在使用一些VPN工具的时候,也许会让自己的虚拟主机无法访问,则自己使用的过程中,先退出一下VPN,然后在设立虚拟主机。目前大部分的框架公有的特点:单入口:所有的请求必须从单入口开始:重要是关于管理【统一的参数过滤】。MVC的思想【分层的思想:重要是为了协同开发---实现后期的维护方便框架自身写好了很多基础性的代码,不再需要反复造轮子】ORM操作数据库【ObejectRelationshipModel:翻译过来,一个模型对象相应数据表里面的一张表,对象的属性就是表的字段名,对象下的方法就是对表中记录的curd操作】例如:$userModel[username]========sh_user[username]扩展:弄混:CRM【ClientRelationshipMap】客户关系管理系统,一般来说是使用Java开发的一个软件用来维护公司和公司,公司和用户之间关系的一个软件【保存用户资料信息和关系的软件】,有时候还可以听到Java开发的ERP系统(公司资源管理系统),使用Java语法开发的一个公司内部的资源信息管理的软件。尚有的时候听到Java开发的OA项目【无纸化办公、低碳】【清楚php是不适合做OA项目的】。桌面:Delphi语言(宝兰公司的语言,现在已经被收购,曾经和诺基亚),C++,VB(微软)注意:laravel框架有一个很特别的地方,所有的url的访问都必须要事先定义好一个路由规则。对比之前的TP|CI框架index.php---Router(Dispatcher)路由器类文献是隐式操作的,意思就是说和程序员无关【程序员不用去获取控制器或者调用控制器的方法】,框架自己会去匹配url里面的控制器和方法,框架自己完毕类的实例化和方法调用。所以laravel是一个重路由的框架。记住:1.重路由2.依赖注入【设计模式用的多】3.纯面向对象的框架【和YII框架也是】比方:TP里面从数据库获取的数据是一个关联数组,但是laravel获取的数据肯定是一个对象。②-开发环境规定注意:laravel框架有运营对环境是有严格规定的。注意:在修改php.ini配置文献系统的时候,先使用phpinfo函数进行查看到底使用是哪个php.ini配置文献(Linux开发)建议wamp2.5开发环境就可以。php版本信息扩展信息注意:使用pathinfo函数检查的时候,必须要有如下信息注意:同时还要启动Apache的rewrite模块后需要重启Apache注意:需要把php.exe加入系统开发环境变量里面查找php.exe途径位置将上面的php.exe途径加入到系统环境里面假如在命令行里面可以看到这些信息:则代表配置成功。【必须先把php.exe途径信息加入到环境变量】③-laravel安装方式简介需要注意的是,该框架的安装分为两种方式:使用专业的软件composer软件(php的类库管理器(上传类、验证码类....),可以帮我们自动去互联网下载开发过程中所需要的类库文献和Linux下包管理器yum比较类似,和node.js里面npm,也和前端里面bower相似)理解:360软件QQ软件管理【要什么软件喊一下】简介:该工具需要借助一定的工具才可以使用(VPN工具),这次课程也不使用这种方式。有时间还是要自己去研究一下。使用手工安装,需要自己去下载laravel的框架的源码。【thinkphp---onethink框架----基于onethink这个框架开发了一个微信公众号的管理开源产品weiphp[小猪cms](ECShop、discuz!)】网站:本次开发使用的5.1.11版本:该版本是官方推出长期支持的一个版本,提供3年的维护期。开源:1.bug修复2.版本的兼容性。注意:目前lavarel的版本最新的应当是5.3。但是公司使用更多的还是5.1【官方长期支持】。微信公众账号管理平台://【很多公司使用这个】④-laravel具体安装虚拟主键创建(注意:public的问题),由于laravel框架的入口文献index.php时候在public目录的,所以在配置虚拟主机目录的时候,需要配置到public下。虚拟主机配置:<VirtualHost*:80>DocumentRoot"D:\vhost\\public"ServerName<Directory"D:\vhost\\public">OptionsIndexesFollowSymLinksAllowOverrideAllOrderallow,denyAllowfromall</Directory></VirtualHost>修改hosts文献重启见到这个代表运营成功

⑤-laravel目录结构分析该框架的目录结构和原先使用的一些开源框架TP的结构还是有很大的区别。app目录:重要是存放自己开发的应用代码(里面重要书写控制器和模型和路由文献)bootstrap目录:laravel启动目录config目录:重要是存放配置文献信息database目录:数据迁移功能public目录:单入口和系统的静态资源(css、img、js、uploads)resources目录:存放视图文献storage目录:重要是存放缓存文献和日记文献,需要注意:假如是在Linux环境下,该目录需要有可写的权限vendor目录:重要是存放第三方的类库文献,laravel思想重要是共同的开发,不要反复的造轮子(例如:里面也许存在验证码类、上传类、邮件类),还需要注意该目录还存放laravel框架的源码。注意:假如使用的composer软件管理的,composer下载的类库都是存放在该目录下的。【问题:版权问题....】学习成本高:实用【不划算、会用就好】【TP、CI源码必须要看】.env文献:重要是设立一些系统相关的环境配置文献信息。config目录里面的文献配置内容一般都是读取该文献里面的配置信息(config里面的配置项的值基本都是来自.env文献)。

二、laravel入门使用要想laravel玩的好,路由必须掌握。①-路由简介简朴的说就是将用户的请求转发给相应的php程序去解决路由的作用就是建立url请求和php程序【控制器下的方法或者视图、甚至直接返回一个字符串】之间的映射,需要注意laravel框架里面路由是必须的【laravel可以不写控制器、也不可以写模型、也可以不写视图】,并且每个路由规则是唯一性的。laravel是一个重路由的框架。请求类型get、put、post、patch、delete、tarce...等【http请求分6种,但是并不是所有的请求web服务器都支持】任何框架TP|CI|laravel都离不开路由,例如TP框架里面形如这样的URL地址:;代表请求的是Home模块下,User控制器下的add方法【一般其他的框架都是路由隐藏了】5.参考手册②-路由入门使用路由文献的位置内容路由文献内容分析3.测试视图视图文献浏览器访问

③-视图使用思考:视图写哪里?视图文献如何命名?【a..blade.phpb.php】视图里面的内容该如何书写?【a.html代码b.原生php代码c.laravel标签语法(必须是以.blade.php结尾的视图)】在控制器-路由文献里面如何调用视图?【view(‘view’)】如何给视图赋值?【a.withb.view传参】如何在视图里面显示控制器赋值的变量信息?【a.原生b.{{$title}}插值表达式】视图是否可以分目录管理?实操:视图文献写在哪里视图文献如何命名文献名习惯小写(建议小写)文献名的后缀是.blade.php(由于laravel里面有一套模板引擎就是使用blade,可以直接使用标签语法{{$title}},也可以使用原生的php语法显示数据。)需要注意的是也可以使用.php结尾,但是这样的话就不能使用laravel提供的标签{{$title}}语法显示数据,只能使用原生语法<?phpecho$title;?>显示数据视图文献里面的内容如何书写可以直接的写html代码可以直接书写原生的php代码可以使用标签语法书写代码【但是后缀必须是.blade.php结尾】代码效果视图文献分文献夹管理【需要注意是分目录后,使用.号代表文献分割符/】④-控制器使用在laravel里面控制器并不是必须的。可以把所有的代码写在路由文献里面,但是这样写的话是不便于管理,所以不建议这样做,还是建议自己书写控制器文献。然后在路由规则里面相应的控制器下的方法。思考:控制器文献写在哪里?控制器文献如何命名?内容如何书写?【使用大驼峰命名,同时注意命名空间和基类控制器的引入】如何在控制器里面载入视图?如何给视图赋值?如何在视图显示数据?如何使用路由规则调用控制器下的方法控制器是否可以分管理?【可以】控制器注意命名空间的问题:

三、DB类操作数据库【重点-模型】按照MVC的架构,对数据的操作应当放在Model中完毕,但假如不使用Model,我们也可以用laravel框架提供的DB类操作数据库。并且,对于某些极其复杂的sql,用Model已经很难完毕,需要开发者自己手写sql语句,使用用DB类去执行原生sql。laravel中DB类的基本用法DB::table('tableName')获取操作tableName表的实例。①-数据库创建和配置1.完毕数据表的设计和数据库的配置2.配置数据库信息3.还要修改config目录下的database.php文献②-设计路由规则在路由文献定义路由规则③-创建DbController.php文献切换到项目目录2.使用命令行创建>phpartisanmake:controllerAdmin\DbController现在代表需要在app\Http\Controllers\Admin这个目录创建DbController.php3.创建后④-数据添加插入单行,一维数组形式,数组的键就是表中字段,返回值为true和false。代码:$row=['titles'=>'测试数据','email'=>''];DB::table('goods')->insert($row);案例:效果:插入多行,二维数组形式,二维数组中单元的键是表中字段,返回值为true和false。$rows=array(array('titles'=>'测试数据1','email'=>''),array('titles'=>'测试数据2','email'=>''));DB::table('goods')->insert($rows);案例:插入后返回主键值,获取主键值用insertGetId()方法(但是需要注意的是对多维数组不行)$row=['titles'=>'测试数据','email'=>''];$id=DB::table('goods')->insertGetId($row);var_dump($id);案例:效果:⑤-数据更新在laravel中对数据的修改如下:DB::table('tableName')->where('id',1)->update(['age'=>19]);对于上面的操作相称于sql:updatetableNamesetage=19whereid=1;案例:假如希望在某字段在原基础上增长或减少则可以使用increment/decrement方法,返回值是受影响的行数。例如:DB::table('users')->where('id',1)->increment('age');//默认步长为1DB::table('users')->where('id',2)->increment('age',3);//第二个参数,指定步长DB::table('users')->where('id',3)->decrement('age');DB::table('users')->where('id',4)->decrement('age',3);⑥-数据删除在laravel中对数据的修改如下:DB::table(‘tableName’)->where('id','>',3)->delete();备注:当where方法有三个参数时,其中第二个参数当做运算符,并且返回值是受影响的行数。案例:效果:⑦-数据显示注意:在laravel里面取出的数据,无论是单行还是多行,每一行数据都是以一个对象的形式组织的,不是关联数组。a.获取所有数据DB::table('goods')->get();等价操作:select*fromgoods;案例:效果:b.按条件获取数据DB::t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论