Laravel学习 – 轩脉刃 – 博客园

Laravel是个很强大的PHP框架,它剔除了开发中Web开发中比较痛苦的过程,提供了验证(authentication),路由(routing),Session和缓存(caching)等开发过程中常用到的工具或者功能。

Laravel的配置都存放在app/config中。

Laravel学习 – 轩脉刃 – 博客园

里面所有的*.php都按照return的形式返回数据,那么就可以使用Config::get(“key”)来获取配置。使用Config::set(“key”, “value”) 来赋值配置项

要想使用不同的环境配置,就需要在config下创建对应配置的文件夹。然后它会覆盖对应的配置项。

获取当前的环境是使用App::environment(),判断当前环境是什么是使用:App::environment(“local”)

providers是用来配置对应的服务的,比如:

Laravel学习 – 轩脉刃 – 博客园

Laravel的请求周期:

1 请求先从public/index.php中进入

2 bootstrap/start.php文件创建app并检测环境

3 内部的 /Illuminate/Foundation/start.php文件配置相关设置并加载服务器

4 加载app/start目录下的文件

5 加载app/routes.php的路由设置

6 request通过controller等转化为response

7 返回response

路由配置:

配置的格式是:

Route::get(‘foo/bar’, funciton(){return ‘Hello World’;})

路由参数是可以有下面几种的:

Image(34)

可选路由参数:

Image(35)

带有默认的可选的路由参数:

Image(36)

用正则表达式限定的路由参数:

Image(37)

传递参数限定的数组:

Image(38)

定义全局模式:

Image(39)

不同的参数定位到不同的路由:

Image(40)

好,现在有个问题是某些路由必须要登录或者验证才能访问怎么办?这里就使用到了路由过滤器这个东西。

比如下面这个例子,当年龄小于200的时候就跳转到主页:

Image(41)

Request中的操作:

获取用户提交的值:Input::get(‘name’);

获取用户提交的值并指定默认值:Input::get(‘name’, ‘Sally’);

用户提交的信息是否存在:Input::has(‘name’)

获取所有用户提交的信息:Input::all()

获取其中几项指定的信息:Input::only(‘username’, ‘password’);

获取除几项之外的提交信息:Input::except(‘card’);

访问用户提交的数组:Input::get(‘products.0.name’);

cookie操作:

获取Cookie中的值:Cookie::get(‘name’)

添加一个Cookie:

$response = Response::make(‘Hello World’);

response>withCookie(Cookie::make( name , value , minutes));

如果想在Response之前设置Cookie,使用Cookie::queue()

Cookie::queue(name, value, $minute);

Session操作:

存储一个变量:Session::put(‘key’, ‘value’);

读取一个变量:Session::get(‘key’);

读取一个变量或者返回默认值:Session::get(‘key’, ‘default’);

检查一个变量是否存在:Sesssion::has(‘key’);

删除一个变量:Session::forget(‘key’);

删除所有Session变量:Session::flush();

文件上传操作:

获取用户上传文件:$file = Input::file(‘photo’);

判断是否有上传这个文件:Input::hasFile(‘photo’);

移动上传的文件:

Input::file(‘photo’)->move($destinationPath);

Input::file(‘photo’)->move(destinationPath, fileName);

获取上传文件大小:

Input::file(‘photo’)->getSize();

获取上传文件类型:

Input::file(‘photo’)->getMimeType();

获取用户请求路径:Request::path();

获取用户请求URL:Request::url();

获取Header中的信息:Request::header(‘Content-Type’);

获取SERVER中的信息:Request::server(‘PATH_INFO’);

重定向:

重定向: return Redirect::to(‘user/login’);

有参数的重定向: return Redirect::to(‘user/login’)->with(‘message’, ‘Login Failed’);

重定向到路由:return Redirect::route(‘profile’, array(‘user’ => 1));

返回重定向到Action:return Redirect::action(‘UserController@profile’, array(‘user’ => 1));

视图层:

传递数据给视图:$view = View::make(‘greeting’)->with(‘name’, ‘Steve’);

将一个视图传递给另一个视图:$view = View::make(‘greeting’)->nest(‘child’, ‘child.view’);

返回json:return Response::json(array(‘name’ => ‘Steve’, ‘state’ => ‘CA’));

返回jsonp:return Response::json(array(‘name’ => ‘Steve’, ‘state’ => ‘CA’))->setCallback(Input::get(‘callback’));

返回下载文件:

return Response::download($pathToFile);

return Response::download(pathToFile, status, $headers);

一个基本的控制器:

Image(42)

路由就长这样:

Image(43)

默认中,app/start/global.php文件中包含了一个处理所有异常的处理器。

Image(44)

监听fatal error,可以使用App::fatal方法。

日志操作:

Log::info

Log::warning

Log::error

数据库的随机查询SQL1 Oracle,随机查询20条select * from(select* from 表名order by dbms_random value)where rownum <= 20;2

数据库的随机查询SQL

1. Oracle,随机查询20条

select * from

(
select  *  from 表名
order by dbms_random.value

)
where rownum <= 20;

2.MS SQL Server,随机查询20条

select top 20  * from  表名order by newid()

3.My SQL:,随机查询20条

select  *  from  表名 order by rand() limit 20

 

随机查询指定人员的一条未读消息

帮助消息表 S_MSG_HINT
帮助消息ID SMH_ID NUMBER(20) PK
帮助消息内容 SMH_TEXT VARCHAR2(200)

人员帮助消息表 S_HINTPEOPLE
人员ID SHP_UID VARCHAR2(20) PK
当前帮助消息ID SMH_ID NUMBER(20)  PK FK

如果为已读消息会在 人员帮助消息表里面生成记录

select
   *
from
   (select
       smh.*,
       nvl2( shp.smh_id,1,0) as status –0:未读 1:已读
   from
       s_msg_hint smh
               left join s_hintpeople shp 
                   on smh.smh_id = shp.smh_id 
                   and shp.shp_uid = ‘p_chencc’
   order by
       dbms_random.value  –随机数值排序
   )
where
   status = 0 and –未读消息
   rownum <= 1  –取一条

linux 测试网速的相关工具2012-04-18 9:211 iptraf -g 这个最直观2 iperf  Iperf 是一个网络性能测试工具。Iperf可以测试

linux 测试网速的相关工具
2012-04-18 9:21
1. #  iptraf -g   //这个最直观

2. iperf  Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能。Iperf具有多种参数和UDP特性,可以根据需要调整。Iperf可以报告带宽,延迟抖动和数据包丢失

TCP:
server(pc):  iperf -s -i 1
client(ls1b):  iperf -t 20 -i 1 -c 192.168.1.167 (pc-ip)

UDP:
server(pc): iperf  -u -s -i 1
client(ls1b): iperf -t 10 -i 1 -u -b 1000M  -c 192.168.1.90

3. #  ifconfig -a
eth0:Link encap:Ethernet  HWaddr 00:1e:64:63:ab:fe
inet addr:192.168.3.103  Bcast:192.168.3.255  Mask:255.255.255.0
inet6 addr: fe80::21e:64ff:fe63:abfe/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:70283 errors:0 dropped:0 overruns:0 frame:0
TX packets:46701 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:73276012 (73.2 MB)  TX bytes:6267375 (6.2 MB)

4. #  mii-tool -w -v  //更详细的用法 man mii-tool

5. ethtool是用来显示和更改网卡设置的工具 更详细的用法 man ethtool
# ethtool eth0   //显示网络端口设置功能
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes:   10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes:  10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Link partner advertised link modes:  Not reported
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: No
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: no

# ethtool -i eth0  //显示跟硬件相关的信息
driver: r8169
version: 2.3LK-NAPI
firmware-version:
bus-info: 0000:05:00.0

6. # watch -n 1 “/sbin/ifconfig eth0 | grep bytes”

jQuery对象转成DOM对象: 
两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index); 
(1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。 
如:var $v =$(“#v”) ; //jQuery对象 
var v=$v[0]; //DOM对象 
alert(v.checked) //检测这个checkbox是否被选中 
(2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象 
如:var $v=$(“#v”); //jQuery对象 
var v=$v.get(0); //DOM对象 
alert(v.checked) //检测这个checkbox是否被选中
DOM对象转成jQuery对象: 
对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象) 
如:var v=document.getElementById(“v”); //DOM对象 
var $v=$(v); //jQuery对象 
转换后,就可以任意使用jQuery的方法了。