2011年,Taylor Otwell首次将Laravel带给这个世界,彼时,Laravel就是一个全新且现代的框架。Laravel基于MVC架构,可以满足诸如事件处理、用户身份验证等各种需求,同时通过包管理实现模块化和可扩展的代码,并且对数据库管理有着健壮的支持。
不管是专家还是新手,一旦接触到Laravel,都会有相见恨晚之感——这正是你在为PHP项目寻找的框架。本文我们将讨论为什么Laravel会成为最成功最流行的PHP框架。
模块化&可扩展性
Laravel是模块化和可扩展的,你可以在包含超过5500个程序包的Packalyst中找到你想要添加的任何代码。
微服务&API
Lumen是一个由Laravel衍生的专注于性能的微框架。使用Lumen提供的高性能API你可以更加简单快速地开发微型项目。Lumen使用最小的配置集成了Laravel的所有重要特性,你可以通过将代码复制到Laravel项目来实现携启旅框架的完整迁移。
<?php
$app->get('/', function() {
return view('lumen')
})
$app->post('framework/{id}', function($framework) {
$this->dispatch(new Energy($framework))
})
HTTP路由
Laravel拥有类似于Ruby on Rails的快辩凳速高效的路由系统。它可以让用户通过在浏览器上输入路径的方式让应用程序的各部分相关联。
Route::get('/', function () {
return 'Hello World'
})
HTTP中间件
Route::get('/', function () {
return 'Hello World'
})
Laravel可以通过中间件对应用进行保护——中间件会处理分析和过滤到达服务器的HTTP请求。你可以使用中间件来验证注册用户旁陪、避免跨站脚本攻击(XSS)以及其它安全问题。
<?php
namespace App\Http\Middleware
use Closure
class OldMiddleware {
public function handle($request, Closure $next) {
if ($request->input('age') <= 200) {
return redirect('home')
}
return $next($request)
}
}
缓存
Laravel提供了健壮的缓存系统,使用缓存可以让应用加载地更加快速,从而带来更好的用户体验。
Cache::extend('mongo', function($app) {
return Cache::repository(new MongoStore)
})
身份验证
安全是至关重要的。Laravel自带对本地用户的身份验证,并可以使用“remember” 选项来记住用户。此外你还可以引入一些额外参数,例如是否是活跃用户。
if (Auth::attempt(['email' =>$email, 'password' =>$password, 'active' =>1 ], $remember)) {
// The user is being remembered...
}
集成Stripe
Laravel Cashier可以满足你开发支付系统过程中所需要的任何需求。除此之外,它还同步并集成了用户身份验证系统。所以,你不再需要担心如何将计费系统集成到开发中了。
$user = User::find(1)
$user->subscription('monthly')->create($creditCardToken)
任务自动化
Elixir是一个让我们可以使用Gulp定义任务的Laravel API,我们可以使用Elixir定义预处理器来压缩CSS 和JavaScript。
elixir(function(mix) {
mix.browserify('main.js')
})
加密
一个安全的应用应该做到可以对数据进行加密。在Laravel中,可以使用OpenSSL和AES-256-CBC加密算法来满足你所有的加密需求。此外,所有的加密值都通过认证码进行签名以避免加密信息被篡改。
use Illuminate\Contracts\Encryption\DecryptException
try {
$decrypted = Crypt::decrypt($encryptedValue)
} catch (DecryptException $e) {
//
}
事件处理
Laravel应用中对事件的定义、记录和监听都非常便捷。服务提供者EventServiceProvider中的listen属性包含了应用中的所有事件列表。
protected $listen = [
'App\Events\PodcastWasPurchased' =>[
'App\Listeners\EmailPurchaseConfirmation',
],
]
分页
在Laravel中分页非常简单,因为它能够根据用户在浏览器中的当前页生成一系列分页链接。
<?php
namespace App\Http\Controllers
use DB
use App\Http\Controllers\Controller
class UserController extends Controller {
public function index() {
$users = DB::table('users')->paginate(15)
return view('user.index', ['users' =>$users])
}
}
对象关系映射(ORM)
Laravel包含了一个数据库处理层,其中的对象关系映射被称作Eloquent。另外这个对象关系映射也适用于PostgreSQL。
$users = User::where('votes', '>', 100)->take(10)->get()
foreach ($users as $user) {
var_dump($user->name)
}
单元测试
单元测试的开发是一个耗费大量时间的任务,但是它却保证了我们的应用能够正常工作,不出问题。Laravel使用PHPUnit进行单元测试。
<?php
use Illuminate\Foundation\Testing\WithoutMiddleware
use Illuminate\Foundation\Testing\DatabaseTransactions
class ExampleTest extends TestCase {
public function testBasicExample() {
$this->visit('/')->see('Laravel 5')->dontSee('Rails')
}
}
待办事项清单(Queue)
Laravel提供了在后台使用待办事项清单(to do list)处理复杂、漫长流程的选择,好吧,其实就是队列,队列可以让我们异步处理某些流程而不需要用户在加载页面时长时间的等待。
Queue::push ( new SendEmail ( $ message ))
您好,PHP开发小程序可以使用Laravel框架,Laravel是一个强大的PHP框架,它提供了一系列雀姿的功能,可以帮助开发者更快捷地开发出高质量的应用程序。Laravel框架具有强大的路由功能,可以帮助开发者更好地管理应用程序的URL,从而更好地实现应用程序巧饥的功能。此外,Laravel框架还提供了一系列的数据库 *** 作功能,可以帮助开发者更好地管理应用程序的数据,从而更好地实现应用程序的功能。此外,Laravel框架还提供了一系列的视图功能,可孝岁返以帮助开发者更好地管理应用程序的视图,从而更好地实现应用程序的功能。总之,Laravel框架是一个强大的PHP框架,可以帮助开发者更快捷地开发出高质量的应用程序。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)