位置: 首页 > 苏州思科认证 > 常熟思科认证
常熟思科认证
预约试听
常熟思科认证

思科认证课程介绍:理论课程

常熟思科认证

理论课程根据CCIE RS v5.0考试大纲内 容要求进行设计,共包含五个模块

【1 】Layer 2 Technologies
【2】 Layer 3 Technologies
【3 】VPN Technologies
【4 】Infrastructure Security
【5 】Infrastructure Services

理论课程每个模块除了老师直播上课之外,还将为学员提供

【1】老师上课使用的课件

【2】老师上课的课堂笔记

【3】老师上课的讲解视频

【4】理论测试文档

【5】实验测试文档

【6】一对一答疑服务及群答疑

【7】.....等

常熟思科认证

场地租赁服务

常熟思科认证

拥有10间专业培训教室,包括了20台、25台和30台等不同规格的培训机房, 机器配置性能卓越,高速率连接因特网,可以满足不 同层次的信息化培训需求。

先后为Microsoft公司、IBM公司、Oracle公司、Juniper公司、EMC公司,中 国移动、中国石化等客户提供了相应的培训场地服务 ,获得了客户的一致认可!

思科CCIE-DC直通车(数据中心)

常熟思科认证

思科CCIE-DC直通车”课程涵盖思科数据中心方向的所有初级、中级、高级课程知识,总共分为CCNA->CCNP->CCIE三个阶段,共5门课程,总课时为16天。课程设计由浅入深,适合所有具备CCNP-RS基础的学员参加。
1.1 CCNA-DC(包含1门课程,课时4天)
课程概述:包含NEXUS 交换机基础知识,存储原理知识,服务器虚拟化知识等数据中心方面的基础知识。
1.2 CCNP-DC(包含3门课程,课时12天)
课程概述:包含NXOS 交换机的原理和配置、存储网络的原理和配置、UCS 服务器架构和使用、服务器虚拟化和网络虚拟化等知识。
课程列表:
1)  NX-OS(NEXUS 交换机):课时6天,包含NXOS 的原理和配置
2)  Storage(存储网络):课时3 天,包含存储网络的原理知识和配置方法。
3)  UCS(UCS 服务器):课时3天,包含服务器的操作使用以及网络虚拟化。
1.3 CCIE-DC集训营(包含1门课程,课时按需安排)
课程概述:包含CCIE LAB考试的高级知识点、分解实验、考题讲解等。

laravel4.2框架路由配置深入了解(上篇)



laravel框架路由并不像YII或CI等框架那样有着固定的默认方式(路径,GET,POST来提取),因此在使用laravel框架时配置路由是必备的。

路由是**配置注入到程序中,laravel路由非常灵活,不仅可以指定Controller对应的Action还可以完成很多的伪静太工作,在进入MVC前还可以做一些必要的参数过滤。

优点:

面向对象管理路由,配置灵活,可以针对不同的地址解析处理。


路由可过滤,分组提高路由调用精准安全。


路由执行不只针对MVC控制器,也可以写入其它自定义处理入口。


路由调用Action时可以定义调用传入的参数。


路由可以区分GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS等请方式调用不同的Action

缺点:



路由管理程序复杂,增加系统负载。


路由配置会随着系统升级改版不断增加,增加了维护时间。


路由配置灵活,但每个Controller**少一个路由配置管理,增加开发流程。



路由是入口必经之路,如果路由配置出错,会让整个系统报错,影响升级维护开发。

**方文档中对路由配置做了些常规的示例:http://v4.golaravel.com/docs/4.2/routing

路由配置都是** Illuminate\Support\Facades\Route 类,Route实际上是一个外观类,它继承于Illuminate\Support\Facades\Facade 并不是直接的路由类,框架**类别名处理使Illuminate\Support\Facades\Route可以**Route访问,这样可以大大的简化代码,Route类本身是全静态方法,只要调用的静态方法非当前类的,都可以当路由类来使用,(**次使用必需是静态调用方法,如:Route::controller(user, UserController);)。实际上在laravel框架中大量了使用这种外观模式,我们可以在 vendor/laravel/framework/src/Illuminate/Support/Facades/目录下看到很多的外观类,这些外观外都已经指定了对应的操作类,存放在loC容器类中,使用这种外观模式主要是统一入口类,简化程序,当然如果不使用这些外观类直接调用对应的类也可以,只是有的类在调用时没有那么方便,可能有的类在new时需要一些参数,而这些参数又要创建一些对象,相对对使用外观类来说复杂的多。



所有的外观类都可以** Facades::getFacadeRoot() 来获取外观类指定的实际类对象,如:

$route=Route::getFacadeRoot();//获取路由对象
var_dump(get_class($route));//打印对象
# 打印结果如下
# string(25) "Illuminate\Routing\Router"

所以


1 Route::controller(user, UserController);

1 Route::getFacadeRoot()->controller(user, UserController);

这两行代码功能结果是一样的。

laravel框架的外观模式比较复杂,这里就不多作说明。

上面我们打印了路由类(Illuminate\Routing\Router),现在我们来看看路由类的对外函数:



/*============= 路由基本配置 =============*/

/*
* ******** 常规路由配置 **********
*
*参数:$uri [string]指定URL地址,必须是标准的URL地址,不含域名
*      $action [Closure|array|string] 要调用的控制方法
*      $methods [array|string] 指定请求类型如:GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS
*返回值:\Illuminate\Routing\Route对象
*/
Route::get($uri, $action);//配置使用GET或HEAD请求路由
 
Route::post($uri, $action);//配置使用POST请求路由
 
Route::put($uri, $action);//配置使用PUT请求路由
 
Route::patch($uri, $action);//配置使用PATCH请求路由
 
Route::delete($uri, $action);//配置使用DELETE请求路由
 
Route::options($uri, $action);//配置使用OPTIONS请求路由
 
Route::any($uri, $action);//配置使用GET,HEAD,POST,PUT,PATCH,DELETE请求路由
 
Route::match($methods, $uri, $action);//配置自定义请求路由

常规路由配置是一对一的配置,也就是说一个action就得配置一个路由。


常规路由配置中,框架会先以请求类型匹配如:GET或POST然后提出匹配成功的路由,这种方式配置的路由并未加载对应的Action文件,只是暂存一些加载信息,相对安全,但其配置数据比较多。


注意:

$url 是请求路由地址,允许配置方法:


直接对应的URL地址,如:test-route/action



提取参数方式,如:test/{name}/{id?} 注意:在{}内的是从请求路由URL中匹配提取的标识,并不单指请求的URL地址为 test/name/id。在{}中只参数的占位标识,它可以是‘test/show/1’或‘show/list’等,相当于正则:‘test/[^/] (/[^\]*)?’,占位标识还可以用来参数判断过滤处理,即指定参数的数据结构,如果匹配的则进入路由。

$action 参数允许有三种类型:

   Closure 是匿名函数,当前路由配置成功后会调用这个匿名函数,默认是不会有参数传入,如果在路由URL中配置值则按配置的先后传入URL路由参数。

   array 是数组方式,可有元素如:

array(
    # 指定访问域名,并且可以使用{}把域名的部分内容提取来当Action的参数,
    #    以下方式是把laravel提取出来传给Action方法**个参数,
    #    可以同时提取多个,默认为空。
    # 注意:在{}中间的字符串只是参数名,并不是指定这个域名,只是指定了相关规则。
    # 同路由URL一样处理
    
    domain=>www.{laravel}.com,
 
    # 必须设置,可以是匿名函数或控制器@方法
    #(**后还是会转为匿名函数,原值放在controller下标中保存)
 
    uses=>HomeController@anyIndex,
 
    prefix=>dc-,  //路由URL前缀部分,默认为空。
 
    # 当前路由的名称,下面会详细说明。
    
    as=>name,
    
    controller=>HomeController@anyIndex, //无须设置,该下标是uses下标的副本。
    
    Closure=>function(){}, //类似uses,但只能指定匿名函数,优先级没有uses高
    
    https, //指定HTTP是否为加密模式
    
    http, //指定HTTP是否为非加密模式
    
    # 过滤参数说明:
    #  before 与after 元素是输入输出过滤处理,
    #  这两个需要**Route::filter添加过滤项,否则无效
    #  过滤规则:[array|string]
    #  数组形式:array(name,list)
    #  字符串形式:name:filter|list:filter
    #  注意filter非必需,只是用来传入过滤器的参数值,
    #  可以用,来连接多个参数。如果没有filter参数则可以这样写 name|list。
    
    
    before=>name:filter|list:filter, //进入action前参数过滤处理规则
    
    after=>array(name,list) //调用action返回值进行过滤处理规则
)


    string 是直接给定路由要执行的 控制器@方法 例:GoodsController@anyList。格式必须正确。

提醒:路由中的URL或域名可以获取指定提取参数,如:

Route::get(index/{id},indexController@Action);


则可以**:

Route::input(id);

获取参数值。参数键名必需相同。



还可以**:


Route::current()->parameters();



获取全部参数数组。

路由指定的 as 名称使用:

当在路由中指定了as键名,则当前这个路由器具有更多操作功能:

例:

Route::get(index/{id?},[as=>name,users=>IndexController@index])

** Route::currentRouteName() 获取当前执行路由的 as 值,如果不存在则返回 null

也可以用于生成URL地址或跳转。



URL::route(name); //生成URL地地址: index
Redirect::route(name); //跳转地址: index



或者:
URL::route(name,12); 生成URL地址:index/12
Redirect::route(name,12); 生成跳转URL为:index/12




也就是说,如果URL地址或域名中有指定参数,
则可以在 URL::route或Redirect::route追加参数

注意:如果上面例子中的URL为‘index/{id}’,不指定为{id?}时,则在使用URL::route时,则必需使用追加参数的方式,否则‘{id}’串会被生成到URL地址:/index/{id}


路由判断,是比较常用的,通常如果我们指定了路由的AS则判断会更加方便,尤其是多个路由指定到同一个Action中时,会更容易判断。

Route::is(name); 匹配成功返回true,失败返回false,



参数可以使用 * 进行正则通配,但只能使用 * 作为通配,不能使用其它正则表达式
可以传入多个参数。如:
Route::is(name1,name2,name/laravel/*);



当然我们也可以使用 Request::is(index/*);来判断,当然这种判断不具有便捷性。


判断是否存在某个路由
Route::has(name);



其实,给路由添加 as 也比较方便权限管理,对于添加一个 as 值或添加一个 url 地址来比,as 名称有很大我方便性。


/*
* ******** 路由过滤器配置 **********
*
*参数:$name [string]过滤器名,实际会生成 router.filter:$name 事件标识
*      $callback [mixed] 要调用的过滤控制方法
*返回值:\Illuminate\Routing\Route对象
*/
Route::filter($name, $callback)


   参数 $callback 支持参数类型:

 Closure 匿名函数。



 FilterClassName[@ActionName] 过滤器类名或者再加上过滤器方法名,默认方法名为filter。

 array 要过滤的对象与方法名数组如 array(new FilterClass,number)




**终是以调用函数的方法进行处理,参数顺序有:



当前路由对象 Illuminate\Routing\Route



当前请求对象 Illuminate\Http\Request


过滤规则中追加的参数,如果没有追加则为空。


如:

# 添加常规路由
 
Route::get(test/filter,[
    Closure=>function(){ //处理函数
        return ok;
    },
    before=>name:test,arg //添加进入处理函数前过滤处理
 ]);
 
# 添加过滤器
 
Route::filter(name,function($route, $request,$response1,$response2){
    var_dump($response1,$response2);die;
});



请求地址:/test/filter




结果:string(3) "test" string(3) "arg"


注意:在过滤器中返回值会直接影响到路由是否成功调用控制器的Action,只要过滤器中有返回值,都会直接跳过调用控制器的Action而直接把过滤器的返回值作为本次请求的结果,同样过滤器的返回值得按标准的类型处理,允许类型有:string,array,Redirect(地址跳转处理),或者ROM数据集等,不能出现布尔,资源,没有__toString函数的对象等。


/*
* ******** 路由全局选择性过滤**********
*
*参数:$pattern [string] 匹配路由URL串
*      $name [string] 要调用的过滤器名,** Route::filter 添加的过滤器
*      $methods [array|string|null] 请求类型如:get,post等,可以指定多个类型
*返回值:\Illuminate\Routing\Route对象
*
*/
 
# 只要匹配 $pattern 串的路由URL都执行,
#          $name 过滤器名,
#          $methods 是指定请求类型,允许单个或多个。
# 注意:$pattern 允许使用 * 通配,如 admin/* ,不能使用其它正则表达式。
 
Route::when($pattern, $name, $methods = null);
 
# 只要匹配 $pattern 正则的路由URL都执行,
#          $name 过滤器名,
#          $methods 是指定请求类型,允许单个或多个。
# 注意:这里 $pattern 是正则表达式。
 
Route::whenRegex($pattern, $name, $methods = null);


注意:选择性路由过滤是针对当前所有的注入路由节点,只要路由节点的URL匹配成功都会执行指定的过滤器,并不会因为有些路由节点在这之前而不影响。


如:

Route::get(admin/{id},function(){



    var_dump(Route::input(id));



});

Route::whenRegex(#admin/(\d )?#,filterId,[post,get]);


Route::when(admin/*,filterNum,[post,get]);


Route::filter(filterNum,function(){



    var_dump(filterNum);


});


Route::filter(filterId,function(){


    var_dump(filterId);


});

请求地址:admin/12




输出的结果是:

string(9) "filterNum"
string(8) "filterId"
string(2) "12"


注意:使用when比使用whenRegex过滤的优先级高,也就是使用when要在使用whenRegex添加过滤先执行,不轮先程序后。whenRegex添加是完全使用正则的方式,所以**个参数必需是合法可用的正则表达式。when与whenRegex是全局的,只要有添加的路由节点URL能匹配到则会进入过滤器。

/*
* ******** 路由参数判断过滤器配置 **********
*
*参数:$key [string]参数名称,如路由URL:test/filter/{id} 中的id就是参数名
*      $pattern [string]要调用的过滤控制方法 过滤正则表达式
*      $patterns [array]设置多个 参数名称=>过滤正则表达式 数组
*返回值:null
*/
Route::pattern($key, $pattern);//设置全局条件,只影响设置后所有路由。
Route::patterns($patterns);//设置多个全局条件,
 
/*
******* 这里主要是针对 where 函数作说明,
******* 由于这个参数属于 Illuminate\Routing\Route(路由单点对象),要**常规路由才能获得。
*
*参数:$name [array|string] 如果是字符串则是参数名,如果是数组则(参数名=>过滤正则)组成。
*      $expression [string|null]如果前参数为字符串,则这个为过滤正则,否则无意义。
*返回值:\Illuminate\Routing\Route对象
*/
 
Route::get(test/filter/{id},TestController@filter)->where($name, $expression = null);


相关推荐:


苏州思科认证培训   苏州思科认证培训班   苏州思科认证培训学校

苏州三网IT教育

上课地址:苏州市干将东路666号和基广场

预约试听

倒计时:
11 : 58 : 41
其他试听课程
机构全部课程

学校课程导航