laravel

Hashing là quá trình biến đổi một chuỗi ký tự thành một giá trị cố định ngắn hơn hoặc một khóa đại diện cho chuỗi ban đầu. Laravel sử dụng mặt tiền Hash cung cấp một cách an toàn để lưu trữ mật khẩu theo cách băm.

Cách sử dụng cơ bản

Ảnh chụp màn hình sau đây cho thấy cách tạo bộ điều khiển có tên 

passwordController được sử dụng để lưu trữ và cập nhật mật khẩu

laravel

Các dòng mã sau giải thích chức năng và cách sử dụng passwordController 

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Http\Controllers\Controller

class passwordController extends Controller{
   /**
      * Updating the password for the user.
      *
      * @param Request $request
      * @return Response
   */
   
   public function update(Request $request) {
      // Validate the new password length...
      $request->user()->fill([
         'password' => Hash::make($request->newPassword) // Hashing passwords
      ])->save();
   }
}

Mật khẩu đã băm được lưu trữ bằng cách sử dụng phương thức tạo . Phương pháp này cho phép quản lý hệ số công việc của thuật toán băm bcrypt , được sử dụng phổ biến trong Laravel.

Xác minh mật khẩu chống lại băm

Bạn nên xác minh mật khẩu dựa trên băm để kiểm tra chuỗi được sử dụng để chuyển đổi. Đối với điều này, bạn có thể sử dụng phương pháp kiểm tra . Điều này được hiển thị trong đoạn mã dưới đây

if (Hash::check('plain-text', $hashedPassword)) {
   // The passwords match...
}

Lưu ý rằng phương thức kiểm tra so sánh văn bản thuần túy với biến hashedPassword và nếu kết quả là true, nó sẽ trả về giá trị true

Laravel – Understanding Release Process quy trình phát hành

Mỗi khuôn khổ ứng dụng web đều có lịch sử phiên bản riêng và nó luôn được cập nhật và duy trì. Mọi phiên bản mới nhất đều mang đến chức năng mới và các chức năng đã được thay đổi hoặc không còn được dùng nữa, vì vậy điều quan trọng là bạn phải biết phiên bản nào sẽ phù hợp với các dự án của mình.

Khi nói đến Laravel, có hai phiên bản đang hoạt động như được đưa ra bên dưới:

  • Laravel 4- phát hành vào tháng 5 năm 2013
  • Laravel 5.1- phát hành vào tháng 2 năm 2015

Laravel 5.1 cũng bao gồm các bản phát hành khác nhau với phiên bản mới nhất của Laravel 5.1.5 bao gồm tất cả các tính năng mạnh mẽ để phát triển web. Lộ trình của Laravel hoặc phiên bản phát hành được hiển thị trong hình ảnh bên dưới

laravel

Những điểm sau đáng chú ý trong bối cảnh tìm hiểu quá trình phát hành của Laravel:

  • Thư mục cũ của ứng dụng / mô hình bị xóa trong Laravel 5.1.
  • Tất cả các bộ điều khiển, phần mềm trung gian và các yêu cầu được nhóm trong một thư mục trong thư mục app / Http.
  • Một thư mục mới cụ thể là thư mục Nhà cung cấp được thay thế bằng các tệp ứng dụng / bắt đầu trong các phiên bản trước của Laravel 4.x.
  • Tất cả các tệp ngôn ngữ và dạng xem được chuyển đến thư mục tài nguyên .
  • Tuyến lệnh thủ công mới : bộ đệm được sử dụng để đăng ký các tuyến mới và được bao gồm trong việc phát hành Laravel 5.1 và các phiên bản khác.
  • Laravel hỗ trợ phần mềm trung gian HTTP và cũng bao gồm mã thông báo CSRF và mô hình xác thực.

Tất cả các mô hình xác thực được đặt trong một thư mục cụ thể là tài nguyên / lượt xem / auth . Nó bao gồm đăng ký người dùng, xác thực và bộ điều khiển mật khẩu.

Bản phát hành Laravel

Phiên bảnGiải phóngCác bản sửa lỗi cho đến khiCác bản sửa lỗi bảo mật cho đến khi
V1Tháng 6 năm 2011
V2Tháng 9 năm 2011
v3Tháng 2 năm 2012
v4Tháng năm 2013
5.0Ngày 4 tháng 2 năm 2015Ngày 4 tháng 8 năm 2015Ngày 4 tháng 2 năm 2016
5.1 (LTS)Ngày 9 tháng 6 năm 2015Ngày 9 tháng 6 năm 2017Ngày 9 tháng 6 năm 2018
5.2Ngày 21 tháng 12 năm 2015Ngày 21 tháng 6 năm 2016Ngày 21 tháng 12 năm 2016
5.3Ngày 23 tháng 8 năm 2016Ngày 23 tháng 2 năm 2017Ngày 23 tháng 8 năm 2017
5,4Ngày 24 tháng 1 năm 2017Ngày 24 tháng 7 năm 2017Ngày 24 tháng 1 năm 2018
5,5 (LTS)Ngày 30 tháng 8 năm 2017Ngày 30 tháng 8 năm 2019Ngày 30 tháng 8 năm 2020
5,6Ngày 7 tháng 2 năm 2018Ngày 7 tháng 8 năm 2018Ngày 7 tháng 2 năm 2019
5,74 thg 9, 2018Ngày 4 tháng 2 năm 2019Ngày 4 tháng 9 năm 2019

Lưu ý rằng phiên bản được đánh dấu đánh dấu bản phát hành mới nhất

Laravel – Guest User Gates người dùng khách

Tính năng Cổng Người dùng Khách là một tiện ích bổ sung cho phiên bản 5.7 mới nhất được phát hành vào tháng 9 năm 2018. Tính năng này được sử dụng để bắt đầu quá trình cấp quyền cho những người dùng cụ thể. Trong Laravel 5.6, có một thủ tục mà nó được sử dụng để trả về false cho những người dùng chưa được xác thực. Trong Laravel 5.7, chúng tôi có thể cho phép khách kiểm tra ủy quyền bằng cách sử dụng gợi ý loại nullable cụ thể trong bộ điều khiển được chỉ định như được cung cấp bên dưới:

<?php
Gate::define('view-post', function (?User $user) {
   // Guests
});

Giải thích về Quy tắc

Bằng cách sử dụng kiểu nullable, gợi ý rằng biến $ user sẽ là null khi người dùng khách được chuyển đến cổng. Sau đó, bạn có thể đưa ra quyết định về việc cho phép hành động. Nếu bạn cho phép kiểu nullable và trả về true, thì khách sẽ có quyền. Nếu bạn không sử dụng gợi ý kiểu nullable, khách sẽ tự động nhận được phản hồi 403 cho Laravel 5.7, được hiển thị bên dưới: Sự khác biệt giữa lỗi 403 và 404 là lỗi 404 được hiển thị khi người dùng cố gắng truy cập tài nguyên hoặc URL không xác định và lỗi 403 như đã đề cập trong ảnh chụp nhanh ở trên được hiển thị nếu người dùng truy cập trái phép trang web

Laravel – Artisan Commands Lệnh Artisan

Laravel 5.7 đi kèm với cách xử lý và thử nghiệm các lệnh mới. Nó bao gồm một tính năng mới là thử nghiệm các lệnh của nghệ nhân và phần trình diễn được đề cập bên dưới:

class ArtisanCommandTest extends TestCase{
   public function testBasicTest() {
      $this->artisan('nova:create', [
         'name' => 'My New Admin panel'
      ])
      ->expectsQuestion('Please enter your API key', 'apiKeySecret')
      ->expectsOutput('Authenticating...')
      ->expectsQuestion('Please select a version', 'v1.0')
      ->expectsOutput('Installing...')
      ->expectsQuestion('Do you want to compile the assets?', 'yes')
      ->expectsOutput('Compiling assets...')
      ->assertExitCode(0);
   }
}

Giải thích mã

Ở đây, một lớp mới có tên “ArtisanCommandTest” được tạo trong mô-đun trường hợp thử nghiệm. Nó bao gồm một testBasicTest chức năng cơ bản bao gồm các chức năng khác nhau của các xác nhận.

Lệnh thủ công mong đợiQuestion bao gồm hai thuộc tính. Một với câu hỏi và một với apiKeySecret . Ở đây, nghệ nhân xác thực apiKeySecret và xác minh đầu vào do người dùng gửi. Tình huống tương tự cũng áp dụng cho câu hỏi “Vui lòng chọn phiên bản” trong đó người dùng dự kiến ​​sẽ đề cập đến một phiên bản cụ thể

Laravel – Pagination Customizations Tùy chỉnh phân trang

Laravel bao gồm một tính năng phân trang giúp người dùng hoặc nhà phát triển đưa vào một tính năng phân trang. Trình phân trang Laravel được tích hợp với trình tạo truy vấn và Eloquent ORM. Phương thức phân trang tự động đảm nhận việc thiết lập giới hạn cần thiết và độ lệch được xác định. Nó chỉ chấp nhận một tham số để phân trang tức là số lượng mục được hiển thị trong một trang.

Laravel 5.7 bao gồm một phương pháp phân trang mới để tùy chỉnh số lượng trang trên mỗi mặt của trình phân trang. Phương pháp mới không còn cần dạng xem phân trang tùy chỉnh. Trình diễn mã chế độ xem phân trang tùy chỉnh được đề cập bên dưới

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
class UserController extends Controller{
   /**
   * Show all of the users for the application.
   *
   * @return Response
   */
   public function index() {
      $users = DB::table('users')->paginate(15);
      return view('user.index', ['users' => $users]);
   }
}

Tùy chỉnh phân trang mới theo tiêu chuẩn Laravel được đề cập bên dưới:

<?php
User::paginate(10)->onEachSide(5);

Lưu ý rằng onEachSide đề cập đến việc chia nhỏ từng bản ghi phân trang với 10 và chia nhỏ là 5.

Laravel – Dump Server Máy chủ Dump

Máy chủ kết xuất Laravel đi kèm với phiên bản Laravel 5.7. Các phiên bản trước không bao gồm bất kỳ máy chủ kết xuất nào. Máy chủ kết xuất sẽ là một phần phụ thuộc phát triển trong tệp trình soạn nhạc laravel / laravel. Với việc phát hành phiên bản 5.7, bạn sẽ nhận được lệnh này bao gồm một khái niệm out-of-thebox cho phép người dùng kết xuất dữ liệu vào bảng điều khiển hoặc tệp HTML thay vì vào trình duyệt. Việc thực thi lệnh được đề cập bên dưới

php artisan dump-server
# Or send the output to an HTML file
php artisan dump-server --format=html > dump.html

Giải trình

Lệnh chạy một máy chủ trong nền giúp thu thập dữ liệu được gửi từ ứng dụng, gửi kết quả thông qua bảng điều khiển. Khi lệnh không chạy ở nền trước, hàm dump () dự kiến ​​sẽ hoạt động theo mặc định.

Laravel – Action URL

Laravel 5.7 giới thiệu một tính năng mới được gọi là “URL hành động có thể gọi”. Tính năng này tương tự như tính năng trong Laravel 5.6 chấp nhận phương thức chuỗi trong hành động. Mục đích chính của cú pháp mới được giới thiệu Laravel 5.7 là cho phép bạn truy cập trực tiếp vào bộ điều khiển. Cú pháp được sử dụng trong phiên bản Laravel 5.6 như sau:

<?php
$url = action('UserController@profile', ['id' => 1]);

Hành động tương tự được gọi trong Laravel 5.7 được đề cập dưới đây:

<?php
$url = action([PostsController::class, 'index']);

Một lợi thế với định dạng cú pháp mảng có thể gọi mới là tính năng có khả năng điều hướng trực tiếp đến bộ điều khiển nếu nhà phát triển sử dụng trình soạn thảo văn bản hoặc IDE hỗ trợ điều hướng mã.

Trả lời