资源描述
一、 laravel框架
①-laravel简介
laravel是当前一种比较主流框架,当前诸多互联网公司基本都在使用该框架。该框架是基于symfony【国外一款非常流行框架:由于国内手册不是很齐全,没有多少公司使用】一种国外MVC框架。
laravel定位就是做一种简洁使用程序员框架。为web艺术而开发。
注意:由于这些资源信息是在国外,人们在使用某些VPN工具时候,也许会让自己虚拟主机无法访问,则自己使用过程中,先退出一下VPN,然后在设立虚拟主机。
当前大某些框架公有特点:
1. 单入口:所有祈求必要从单入口开始:重要是关于管理【统一参数过滤】。
2. MVC思想【分层思想:重要是为了协同开发---实现后期维护以便 框架自身写好了诸多基本性代码,不再需要重复造轮子】
3. ORM操作数据库【Obeject Relationship Model:翻译过来,一种模型对象相应数据表里面一张表,对象属性就是表字段名,对象下办法就是对表中记录curd操作】
例如:$userModel[username]========sh_user[username]
扩展:
弄混:CRM【Client Relationship Map】 客户关系管理系统,普通来说是使用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函数检查时候,必要要有如下信息
注意:同步还要启动Apacherewrite模块后需要重启Apache
注意:需要把php.exe加入系统开发环境变量里面
查找php.exe途径位置
将上面php.exe途径加入到系统环境里面
如果在命令行里面可以看到这些信息:则代表配备成功。【必要先把php.exe途径信息加入到环境变量】
③-laravel安装方式简介
需要注意是,该框架安装分为两种方式:
1. 使用专业软件 composer 软件(php类库管理器(上传类、验证码类....),可以帮咱们自动去互联网下载开发过程中所需要类库文献和Linux下包管理器yum比较类似,和node.js里面npm ,也和前端里面bower相似)理解:360软件 QQ软件管理【要什么软件喊一下】
简介:
该工具需要借助一定工具才可以使用(VPN工具),这次课程也不使用这种方式。有时间还是要自己去研究一下。
2. 使用手工安装,需要自己去下载laravel框架源码。
【thinkphp --- onethink框架 ----基于onethink这个框架开发了一种微信公众号管理开源产品weiphp[小猪cms](ECShop、discuz!)】
网站:
本次开发使用5.1.11版本:该版本是官方推出长期支持一种版本,提供3年维护期。
开源:1. bug修复 2. 版本兼容性。
注意:当前lavarel版本最新应当是5.3。但是公司使用更多还是5.1【官方长期支持】。
微信公众账号管理平台:
④-laravel详细安装
1. 虚拟主键创立(注意:public问题),由于laravel框架入口文献index.php时候在public目录,因此在配备虚拟主机目录时候,需要配备到public下。
虚拟主机配备:
<VirtualHost *:80>
DocumentRoot "D:\vhost\\public"
ServerName
<Directory "D:\vhost\\public">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</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玩好,路由必要掌握。
①-路由简介
1. 简朴说就是将顾客祈求转发给相应php程序去解决
2. 路由作用就是建立url祈求和php程序【控制器下办法或者视图、甚至直接返回一种字符串】之间映射,需要注意laravel框架里面路由是必要【laravel可以不写控制器、也不可以写模型、也可以不写视图】,并且每个路由规则是唯一性。laravel是一种重路由框架。
3. 祈求类型get、put、post、patch、delete、tarce...等【http祈求分6种,但是并不是所有祈求web服务器都支持】
4. 任何框架TP|CI|laravel都离不开路由,例如TP框架里面形如这样URL地址:
;代表祈求是Home模块下,User控制器下add办法【普通其她框架都是路由隐藏了】
5. 参照手册
②-路由入门使用
1. 路由文献位置
内容
2. 路由文献内容分析
3. 测试视图
视图文献
浏览器访问
③-视图使用
思考:
1. 视图写哪里?
2. 视图文献如何命名?【a. .blade.php b.php】
3. 视图里面内容该如何书写?【a. html代码 b. 原生php代码 c. laravel标签语法(必要是以.blade.php结尾视图)】
4. 在控制器-路由文献里面如何调用视图?【view(‘view’)】
5. 如何给视图赋值?【a. with b.view传参】
6. 如何在视图里面显示控制器赋值变量信息?【a. 原生 b. {{ $title }} 插值表达式】
7. 视图与否可以分目录管理?
实操:
1. 视图文献写在哪里
2. 视图文献如何命名
a) 文献名习惯小写(建议小写)
b) 文献名后缀是 .blade.php(由于laravel里面有一套模板引擎就是使用blade,可以直接使用标签语法{{ $title }}, 也可以使用原生php语法显示数据。)
c) 需要注意是也可以使用.php结尾,但是这样话就不能使用laravel提供标签{{ $title }}语法显示数据,只能使用原生语法 <?php echo $title;?> 显示数据
3. 视图文献里面内容如何书写
a) 可以直接写html代码
b) 可以直接书写原生php代码
c) 可以使用标签语法书写代码【但是后缀必要是.blade.php结尾】
代码
效果
4. 视图文献分文献夹管理【需要注意是分目录后,使用 . 号 代表文献分割符 / 】
④-控制器使用
在laravel里面控制器并不是必要。可以把所有代码写在路由文献里面,但是这样写话是不便于管理,因此不建议这样做,还是建议自己书写控制器文献。然后在路由规则里面相应控制器下办法。
思考:
1. 控制器文献写在哪里?
2. 控制器文献如何命名?
3. 内容如何书写?【使用大驼峰命名,同步注意命名空间和基类控制器引入】
4. 如何在控制器里面载入视图?
5. 如何给视图赋值?
6. 如何在视图显示数据?
7. 如何使用路由规则调用控制器下办法
8. 控制器与否可以分管理?【可以】
控制器注意命名空间问题:
三、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文献
1. 切换到项目目录
2. 使用命令行创立
> php artisan make:controller Admin\DbController
当前代表需要在app\Http\Controllers\Admin这个目录创立DbController.php
3. 创立后
④-数据添加
插入单行,一维数组形式,数组键就是表中字段,返回值为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:
update tableName set age=19 where id=1 ;
案例:
如果但愿在某字段在原基本上增长或减少则可以使用increment/decrement办法,返回值是受影响行数。
例如:
DB::table('users')->where('id',1)->increment('age');//默认步长为1
DB::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 * from goods;
案例:
效果:
b. 按条件获取数据
DB::table('goods')->where('id' , '>' , 6)->get();
等价操作:select * from goods where id > 6;
案例:
效果:
c. 按条件获取指定字段数据
DB::table('goods')->select('id','email')->where('id' , '>', 6)->get();
等价操作:select id,email from users where id > 6;
案例: 获取表中指定字段
效果
d. 按条件获取单条记录
DB::table('goods')->where('id', 6)->first();
等价操作[取出单行]:select * from goods where id=6;
案例:
效果:
四、案例-laravel会员模块
重要目使用laravel完毕单张表curd操作 + ajax操作 + 多张表 + 安全 + 优化....
①-设计表和配备数据库
②-路由规划
③-创立控制器
1. 使用php artisan命令创立
④-添加数据
1. 在控制器里面定义一种办法
2. 定义一种add.blade.php视图文献
常用错误:
解决在表单里面增长一种_token字段
⑤-展示数据
1. 在控制器增长一种lst办法
2. 增长一种lst.blade.php视图文献
⑥-编辑数据
1. 在控制器增长一种edt办法
2. 增长一种edt.blade.php视图文献
⑦-删除数据
l 在控制器里面增长一种del办法
展开阅读全文