Không có lệnh nào được xác định trong không gian tên "jetstream".

Ok, cuối cùng, tôi đã thay đổi chiến lược và giải quyết vấn đề khi triển khai kết nối DB tùy chỉnh mới và sử dụng nó trước khi gọi bất kỳ lệnh đầu cuối nào

Tôi đã tạo một Trình trợ giúp với mã như thế này

namespace App\Helpers;

class MyDB {
  /**
   * Custom DB connection
   */
  public static $dbConnection;

  /**
   * Create the connection resource to the DB
   */
  public static function connectDB [] {
    $connectionString = 'user='.env['DB_DATABASE'];
    $connectionString .= ' password='.env['DB_PASSWORD'];
    $connectionString .= ' host='.env['DB_HOST'];
    $connectionString .= ' port='.env['DB_PORT'];
    $connectionString .= ' dbname='.env['DB_DATABASE'];
    MyDB::$dbConnection = pg_pconnect[$connectionString];
  }

  /**
   * Execute a Statement query with the custom DB connection.
   */
  public static function executeStatement [$query] {
    if [is_null[MyDB::$dbConnection]] {
      MyDB::connectDB[];
    }
    $resource = pg_query[MyDB::$dbConnection, $query];
    if [$resource === false] {
      return false;
    }
    return true;
  }
}

Sáu tháng sau Laravel 7, vào ngày 8 tháng 9 năm 2020, Laravel 8 chính thức được phát hành — đúng tiến độ. Như mọi khi, phiên bản mới của khung web PHP nguồn mở, miễn phí đi kèm với một số bổ sung thú vị và nhiều cải tiến về chất lượng. Trong bài viết này, chúng tôi đảm bảo sẽ đi qua các tính năng cần thiết của Laravel 8

Mục lục

  • Bổ sung trong Laravel 8
    • Laravel Jetstream
    • Thư mục người mẫu
    • Lớp học nhà máy kiểu mẫu
    • Linh kiện lưỡi dao động
    • Nhóm công việc
    • Triệt tiêu di cư
    • Người trợ giúp kiểm tra thời gian
  • Những cải tiến trong Laravel 8
    • Chế độ bảo trì cải tiến
    • Cập nhật không gian tên định tuyến
    • Cải thiện tỷ lệ giới hạn
    • Nghệ nhân phục vụ Cải tiến
    • Cải tiến trình xử lý sự kiện
    • Lượt xem phân trang Tailwind

Bổ sung trong Laravel 8

Bắt đầu với những bổ sung trong Laravel 8, chúng ta có Laravel Jetstream, phân phối công việc, thư mục ứng dụng/mô hình mới, v.v. Hãy bỏ qua cuộc nói chuyện nhỏ và đi thẳng vào vấn đề

Laravel Jetstream

Laravel Jetstream là một giàn giáo ứng dụng mới, được thiết kế đẹp mắt cho Laravel. Nó thay thế và cải thiện dựa trên giàn giao diện người dùng của các phiên bản trước của khung web PHP. Laravel Jetstream bao gồm đăng nhập, đăng ký, xác thực hai yếu tố, xác minh email, quản lý phiên, quản lý nhóm tùy chọn và hỗ trợ API qua Laravel Sanctum. Những tính năng đó làm cho Laravel Jetstream trở thành điểm khởi đầu phù hợp cho các dự án của bạn.   

Jetstream được thiết kế thông qua Tailwind CSS, cung cấp cho bạn lựa chọn giữa giàn giáo Inertia hoặc Lifewire

Thư mục người mẫu

Do nhu cầu quá lớn của cộng đồng, giàn giáo mặc định của ứng dụng Laravel hiện có thư mục ứng dụng/Mô hình. Nó sẽ là ngôi nhà mới cho các mô hình Eloquent và tất cả các lệnh trình tạo có liên quan hiện được cập nhật để giả định rằng các mô hình tồn tại trong thư mục ứng dụng/Mô hình đó [nếu nó tồn tại]. Nếu thư mục không tồn tại, Laravel sẽ cho rằng các mô hình của bạn cần được đặt trong thư mục ứng dụng

Lớp học nhà máy kiểu mẫu

Các nhà máy mô hình Eloquent có thể được coi là cải tiến, nhưng chúng tôi đã quyết định đưa chúng vào các phần bổ sung đi kèm với Laravel 8. Chúng tôi làm điều đó bởi vì các nhà máy mô hình Eloquent hiện đã được viết lại hoàn toàn thành các nhà máy dựa trên lớp, ngoài việc được cải thiện bằng cách hỗ trợ mối quan hệ hạng nhất. Nhờ đặc điểm

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
9 hiện có sẵn trên các mô hình được tạo, nhà máy sản xuất mô hình có thể được sử dụng theo cách sau

use App\Models\User;

User::factory[]->count[50]->create[];

Các nhà máy mô hình hiện là các lớp PHP đơn giản và do đó, các phép biến đổi trạng thái có thể được viết dưới dạng các phương thức lớp. Hơn nữa, bạn có khả năng bao gồm bất kỳ lớp trợ giúp bổ sung nào mà bạn cần cho mô hình Eloquent của mình

Vì vậy, trong trường hợp mô hình Người dùng của bạn có trạng thái bị treo sửa đổi một trong các giá trị thuộc tính mặc định của nó, bạn có thể xác định các chuyển đổi trạng thái của mình bằng phương thức trạng thái của nhà máy cơ sở. Bạn có tùy chọn đặt tên cho phương thức trạng thái của mình theo ý muốn. Rốt cuộc, đó là một phương thức PHP điển hình

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}

Sau khi xác định phương thức chuyển đổi trạng thái, bạn có thể sử dụng nó như vậy

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];

Như chúng tôi đã đề cập, các nhà máy mô hình của Laravel 8 bao gồm hỗ trợ hạng nhất cho các mối quan hệ và do đó, trong trường hợp mô hình Người dùng có một phương thức quan hệ bài đăng, bạn chỉ cần chạy đoạn mã sau nếu bạn muốn tạo một người dùng có ba bài đăng

$users = User::factory[]
           ->hasPosts[3, [
                'published' => false,
            ]]
            ->create[];

Với ý tưởng giúp quá trình nâng cấp dễ dàng hơn, gói laravel/legacy-factories đã được phát hành để cung cấp hỗ trợ cho lần lặp trước đó của các nhà máy mô hình trong Laravel 8. x

Có rất nhiều tính năng được bao gồm trong các nhà máy được viết lại của Laravel. Nếu bạn muốn tìm hiểu về chúng, hãy tiếp tục và truy cập tài liệu kiểm tra cơ sở dữ liệu chính thức

Linh kiện lưỡi dao động

Có thể đôi khi bạn cần kết xuất một thành phần nhưng không biết chính xác thành phần nào phải được kết xuất cho đến khi chạy. Trong những trường hợp như vậy, Laravel 8 hiện cung cấp tùy chọn sử dụng

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
0 tích hợp của nó để hiển thị thành phần dựa trên giá trị thời gian chạy hoặc biến

Nếu bạn muốn tìm hiểu thêm về các thành phần của Blade, bạn có thể tham khảo tài liệu chính thức của Blade

Nhóm công việc

Tính năng tạo nhóm công việc mà Laravel 8 cung cấp sẽ cho phép bạn thực hiện một loạt công việc một cách dễ dàng. Ngoài ra, bạn có thể thực hiện một loại hành động sau khi các công việc đã chọn của bạn được thực thi xong. Công dụng chính của phân nhóm công việc là kết hợp với các cuộc gọi lại hoàn thành. Bạn có thể sử dụng các phương pháp

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
1,
use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
2 và
use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
3 để xác định các cuộc gọi lại hoàn thành cho lô của mình. Mỗi cuộc gọi lại đó sẽ nhận được một phiên bản Illuminate\Bus\Batch khi được gọi

Để biết các ví dụ và thông tin kỹ lưỡng hơn xung quanh Phân nhóm công việc, hãy cân nhắc truy cập tài liệu hàng đợi chính thức.  

Triệt tiêu di cư

Trong khi xây dựng ứng dụng của mình, bạn có thể tích lũy số lần di chuyển ngày càng tăng theo thời gian. Sự tích lũy đó có khả năng dẫn đến việc thư mục di chuyển trở nên quá tải với hàng trăm lần di chuyển. Nếu bạn sử dụng PostgreSQL hoặc MySQL, thì với Laravel 8, giờ đây bạn có tùy chọn để “bóp” tất cả các lần di chuyển thành một tệp SQL duy nhất. Thực hiện lệnh

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
4 khi bạn muốn bắt đầu quá trình

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
2

Sau khi bạn thực hiện lệnh trên, Laravel sẽ ghi một tệp “lược đồ” vào thư mục cơ sở dữ liệu/lược đồ của bạn. Điều đó sẽ giúp khi bạn cố gắng di chuyển cơ sở dữ liệu của mình mà không thực hiện bất kỳ quá trình di chuyển nào khác, Laravel trước tiên sẽ thực thi SQL của tệp lược đồ. Sau đó, khung sẽ tiếp tục thực hiện tất cả các lần di chuyển còn lại, không phải là một phần của kết xuất lược đồ đó

Người trợ giúp kiểm tra thời gian

Trong khi kiểm tra, đôi khi bạn có thể phải sửa đổi thời gian do người trợ giúp trả về, chẳng hạn như bây giờ hoặc

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
5. Với Laravel 8, giờ đây bạn có những người trợ giúp cung cấp cho bạn thao tác với thời gian hiện tại như vậy

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
4

Những cải tiến trong Laravel 8

Chúng tôi đã hoàn thành việc đề cập đến những bổ sung quan trọng nhất cho Laravel 8, bây giờ hãy tiếp tục với những cải tiến đi kèm với phiên bản khung mới này

Chế độ bảo trì cải tiến

Trong các bản phát hành trước của Laravel, tính năng chế độ bảo trì

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
6 có thể được bỏ qua. Bạn có thể làm điều đó bằng cách sử dụng “danh sách cho phép” gồm các địa chỉ IP được phép truy cập ứng dụng. Tính năng đó hiện đã bị xóa với mục đích có một giải pháp mã thông báo/bí mật đơn giản hơn

Trong chế độ bảo trì, bây giờ bạn có thể sử dụng tùy chọn

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
7 để chỉ định mã thông báo bỏ qua chế độ bảo trì như vậy

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
7

Sau khi bạn đã đặt ứng dụng ở chế độ bảo trì, bạn có khả năng điều hướng đến URL của ứng dụng khớp với mã thông báo này và Laravel sẽ phát hành cookie bỏ qua chế độ bảo trì cho trình duyệt của bạn

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
8

Sau khi truy cập vào hidden route này, bạn sẽ được chuyển hướng đến /route của ứng dụng. Khi cookie đã được cấp cho trình duyệt của bạn, bạn sẽ có khả năng duyệt ứng dụng bình thường [như thể nó không ở chế độ bảo trì]

Cập nhật không gian tên định tuyến

Trong các bản phát hành trước của Laravel, có thuộc tính

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
8 đi cùng với thuộc tính
use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
9. Giá trị của thuộc tính đã nói sẽ được tự động thêm tiền tố vào các định nghĩa tuyến đường của bộ điều khiển và các cuộc gọi đến phương thức
$users = User::factory[]
           ->hasPosts[3, [
                'published' => false,
            ]]
            ->create[];
0 helper /
$users = User::factory[]
           ->hasPosts[3, [
                'published' => false,
            ]]
            ->create[];
1. Trong Laravel 8. x, thuộc tính đó là null theo mặc định, có nghĩa là khung sẽ không tự động thêm tiền tố không gian tên. Vì vậy, trong Laravel 8 mới. x, các định nghĩa tuyến của bộ điều khiển sẽ được xác định bằng cú pháp có thể gọi PHP tiêu chuẩn

use App\Models\User;

User::factory[]->count[50]->create[];
3

Các cuộc gọi đến các phương thức liên quan đến hành động nên sử dụng cùng một cú pháp có thể gọi được

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
0

Trong trường hợp bạn thích Laravel 7. x, tất cả những gì bạn phải làm chỉ đơn giản là thêm thuộc tính

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
8 vào
use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
9 của ứng dụng của bạn

Cải thiện tỷ lệ giới hạn

Với Laravel 8, tính năng giới hạn tốc độ hiện được tăng cường thêm tính linh hoạt và sức mạnh, đồng thời tiếp tục duy trì khả năng tương thích ngược với API phần mềm trung gian điều tiết của bản phát hành trước

Bộ giới hạn tốc độ được xác định bằng phương pháp

$users = User::factory[]
           ->hasPosts[3, [
                'published' => false,
            ]]
            ->create[];
5 của mặt tiền
$users = User::factory[]
           ->hasPosts[3, [
                'published' => false,
            ]]
            ->create[];
4. Phương thức
$users = User::factory[]
           ->hasPosts[3, [
                'published' => false,
            ]]
            ->create[];
5 chấp nhận tên bộ giới hạn tốc độ và Đóng trả về cấu hình giới hạn. Cấu hình sẽ áp dụng cho các tuyến được chỉ định giới hạn tốc độ này

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
1

Vì các lệnh gọi lại của bộ giới hạn tốc độ nhận phiên bản yêu cầu HTTP đến, nên bạn có thể xây dựng giới hạn tốc độ thích hợp một cách linh hoạt và dựa trên yêu cầu đến hoặc người dùng được xác thực

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
2

Trong một số trường hợp, bạn có thể chọn phân đoạn giới hạn tỷ lệ theo một giá trị tùy ý. Ví dụ: bạn có thể muốn cho phép người dùng truy cập một tuyến đường cụ thể 100 lần mỗi phút cho mỗi địa chỉ IP. Để thực hiện điều này, bạn phải sử dụng phương pháp

$users = User::factory[]
           ->hasPosts[3, [
                'published' => false,
            ]]
            ->create[];
7 trong khi xây dựng giới hạn tỷ lệ của mình

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
3

Bộ giới hạn tốc độ có thể được gắn vào các tuyến đường hoặc nhóm tuyến đường bằng cách sử dụng phần mềm trung gian ga. Nó chấp nhận tên của bộ giới hạn tốc độ mà bạn muốn gán cho tuyến đường

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
4

Nếu bạn muốn biết thêm thông tin về giới hạn tốc độ, hãy truy cập tài liệu định tuyến chính thức

Nghệ nhân
$users = User::factory[]
           ->hasPosts[3, [
                'published' => false,
            ]]
            ->create[];
8 cải tiến

Một cải tiến khác với Laravel 8 dành cho lệnh Artisan

$users = User::factory[]
           ->hasPosts[3, [
                'published' => false,
            ]]
            ->create[];
8. Bây giờ nó đã tự động tải lại bất cứ khi nào thay đổi biến môi trường được phát hiện trong cục bộ. tập tin env. Trước Laravel 8, lệnh phải được dừng và khởi động lại theo cách thủ công

Cải tiến trình xử lý sự kiện

Trình xử lý sự kiện dựa trên đóng cửa cũng được cải thiện với phiên bản mới của khung. Bây giờ những thứ đó có thể được đăng ký bằng cách chuyển Closure cho phương thức

0. Laravel kiểm tra Closure để xác định loại sự kiện cụ thể mà người nghe xử lý

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
5

Ngoài ra, trình xử lý sự kiện dựa trên Đóng có thể được đánh dấu là có thể xếp hàng bằng cách sử dụng chức năng

1

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
6

Tương tự như queued jobs, bạn có tùy chọn sử dụng các phương thức

2, 
3 và 
4 để tùy chỉnh việc thực thi queued listener

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
7

Nếu bạn muốn xử lý các lỗi trình nghe xếp hàng đợi ẩn danh, bạn có khả năng cung cấp một Đóng cho phương thức

use App\Models\User;

User::factory[]->count[5]->suspended[]->create[];
2 trong khi xác định trình nghe
6

/**
 * Indicate that the user is suspended.
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended[]
{
    return $this->state[[
        'account_status' => 'suspended',
    ]];
}
8

Lượt xem phân trang Tailwind

Cuối cùng nhưng không kém phần quan trọng, trình phân trang Laravel hiện đã được cập nhật để sử dụng khung CSS Tailwind theo mặc định. Khung CSS Tailwind là một khung CSS cấp thấp, có khả năng tùy biến cao. Nó cung cấp tất cả các khối xây dựng cần thiết để xây dựng các thiết kế khác nhau mà không có các kiểu cố định mà bạn phải chiến đấu để ghi đè lên. Không còn nghi ngờ gì nữa - Chế độ xem Bootstrap 3 và 4 vẫn khả dụng

Phần kết luận

Với mỗi bản phát hành mới, Laravel ngày càng trở nên toàn diện hơn. Sau Laravel 6, framework theo học kỳ và phát hành phiên bản chính sáu tháng một lần. Laravel chắc chắn sẽ giúp mọi thứ trở nên dễ dàng hơn khi tạo ứng dụng web và chúng tôi rất nóng lòng chờ đợi bản phát hành tiếp theo, mặc dù chúng tôi vừa có Laravel 8 mới đó

Các mẹo và tin tức mới nhất từ ​​​​ngành được gửi thẳng đến hộp thư đến của bạn

Tham gia cùng hơn 30.000 người đăng ký để có quyền truy cập độc quyền vào bản tin hàng tháng của chúng tôi với các mẹo nội bộ về đám mây, lưu trữ và WordPress

Theo dõi ngay

Kết nối với chúng tôi

Kết nối với FastComet và không bao giờ bỏ lỡ các bản cập nhật mới nhất và ưu đãi lớn

Tôi đã đọc và đồng ý với các điều khoản và điều kiện

Đặt mua

Chính sách bảo mật

Để trống trường này nếu bạn là người.

thánh Giuse

Joseph là thành viên của nhóm Tiếp thị FastComet. Với nhiều năm kinh nghiệm viết nội dung đằng sau anh ấy, đó là một trong những hoạt động yêu thích của anh ấy. Joseph tham gia SEO trang web và blog FastComet. Mục tiêu của anh ấy là viết các bài đăng và hướng dẫn toàn diện, luôn hướng đến việc giúp khách hàng của chúng tôi có thông tin cần thiết. Joseph cũng khao khát kiến ​​thức và sự tiến bộ, điều này làm cho môi trường tổ chức trở thành một nơi hoàn hảo cho anh ấy

Làm cách nào để sử dụng Jetstream trong laravel?

# Đang cài đặt Jetstream . cài đặt lệnh Artisan execute the jetstream:install Artisan command . Lệnh này chấp nhận tên của ngăn xếp bạn thích [ livewire hoặc quán tính ]. Ngoài ra, bạn có thể sử dụng công tắc --teams để bật hỗ trợ nhóm.

Làm cách nào để cài đặt Jetstream trong Laravel 9?

Bạn có thể sử dụng Composer để cài đặt Jetstream vào dự án Laravel mới của mình. .
nhà soạn nhạc yêu cầu laravel/jetstream
jetstream nghệ nhân php. cài đặt livewire php artisan jetstream. cài đặt livewire --teams
jetstream nghệ nhân php. cài đặt quán tính php artisan jetstream. cài đặt quán tính --teams
npm cài đặt npm chạy dev php artisan di chuyển

Jetstream laravel là gì?

Jetstream cung cấp triển khai cho đăng nhập, đăng ký, xác minh email, xác thực hai yếu tố, quản lý phiên, API qua Laravel Sanctum của ứng dụng và các tính năng quản lý nhóm tùy chọn. Jetstream được thiết kế bằng Tailwind CSS và cung cấp cho bạn lựa chọn giàn giáo Livewire hoặc Inertia

Chủ Đề