PSRPHP

PHP chưa bao giờ thực sự có một tiêu chuẩn thống nhất để viết code. Mọi người đều tuân theo các quy ước đặt tên và nguyên tắc mã hóa của riêng họ

Tiêu chuẩn PSR

Tiêu chuẩn mã hóa là một yếu tố quan trọng để đạt được chất lượng mã cao. Một phong cách trực quan phổ biến, quy ước đặt tên và các cài đặt kỹ thuật khác cho phép chúng tôi tạo ra một mã đồng nhất, dễ đọc và dễ bảo trì

Viết Hướng dẫn cơ bản về các thành phần Symfony khiến tôi muốn viết nhiều bài viết như thế này. Tại sao không làm điều tương tự cho PSR?

Không dùng nữa - Kể từ 2014-10-21 PSR-0 đã được đánh dấu là không dùng nữa. PSR-4 hiện được khuyến nghị thay thế

Phần sau đây mô tả các yêu cầu bắt buộc phải được tuân thủ để có khả năng tương tác với trình tải tự động

Bắt buộc

  • Một không gian tên và lớp đủ điều kiện phải có cấu trúc như sau
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    2
  • Mỗi không gian tên phải có một không gian tên cấp cao nhất ("Tên nhà cung cấp")
  • Mỗi không gian tên có thể có bao nhiêu không gian tên con tùy ý
  • Mỗi dấu tách không gian tên được chuyển đổi thành
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    3 khi tải từ hệ thống tệp
  • Mỗi ký tự
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    4 trong TÊN LỚP được chuyển thành một ký tự
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    3. Ký tự
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    4 không có ý nghĩa đặc biệt trong không gian tên
  • Lớp và không gian tên đủ điều kiện có hậu tố
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    7 khi tải từ hệ thống tệp
  • Các ký tự chữ cái trong tên nhà cung cấp, không gian tên và tên lớp có thể là bất kỳ sự kết hợp nào giữa chữ thường và chữ hoa

ví dụ

  • git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    8 =>
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    9
  • git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    0 =>
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    20
  • git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    21 =>
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    22
  • git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    23 =>
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    24

Dấu gạch dưới trong Không gian tên và Tên lớp

  • git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    25 =>
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    26
  • git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    27 =>
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    28

Các tiêu chuẩn chúng tôi đặt ra ở đây phải là mẫu số chung thấp nhất cho khả năng tương tác của trình tải tự động không gây đau đớn. Bạn có thể kiểm tra xem mình có tuân theo các tiêu chuẩn này hay không bằng cách sử dụng triển khai SplClassLoader mẫu này có thể tải PHP 5. 3 lớp

Thực hiện ví dụ

Dưới đây là một chức năng ví dụ để chứng minh một cách đơn giản cách các tiêu chuẩn được đề xuất ở trên được tự động tải



function autoload($className)
{
    $className = ltrim($className, '\\');
    $fileName  = '';
    $namespace = '';
    if ($lastNsPos = strrpos($className, '\\')) {
        $namespace = substr($className, 0, $lastNsPos);
        $className = substr($className, $lastNsPos + 1);
        $fileName  = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
    }
    $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';

    require $fileName;
}
spl_autoload_register('autoload');

Triển khai SplClassLoader

Ý chính sau đây là một triển khai SplClassLoader mẫu có thể tải các lớp của bạn nếu bạn tuân theo các tiêu chuẩn về khả năng tương tác của trình tải tự động được đề xuất ở trên. Đây là cách được khuyến nghị hiện tại để tải PHP 5. 3 lớp học tuân theo các tiêu chuẩn này

Tiện ích mở rộng PHP này cung cấp các giao diện từ các tiêu chuẩn PSR do nhóm PHP-FIG thiết lập. Bạn có thể dễ dàng sử dụng các giao diện được cung cấp bởi tiện ích mở rộng này trong một tiện ích mở rộng khác - xem phần này

kể từ v1. 2 của phần mở rộng, các lớp được xác định trong không gian tên

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
0 và được đặt bí danh vào không gian tên
git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
1

giao diện

PSRReferencePSR-3psr/log PSR-6psr/cachePSR-7psr/http-messagePSR-11psr/containerPSR-13psr/linkPSR-14psr/event-dispatcherPSR-15psr/http-server-handlerPSR-15psr/http-server-middlewarePSR-16psr/đơn giản

Cài đặt

Linux/macOS

Các gói điều kiện tiên quyết là

  • Các tiêu đề và công cụ phát triển PHP,
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    0 >= 7. 3
  • git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    1 >= 4. 4.
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    2 >= 3. x.
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    3 >= 11
  • GNU
    git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    4 >= 3. 81
  • git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    5
  • git clone https://github.com/jbboehr/php-psr.git
    cd php-psr
    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make
    make test
    sudo make install
    6

Bạn sẽ cần các tiêu đề phát triển PHP. Nếu PHP được cài đặt thủ công, chúng sẽ có sẵn theo mặc định. Nếu không, bạn sẽ cần tìm nạp chúng từ kho lưu trữ

________số 8

Nếu bạn có các phiên bản PHP cụ thể đang chạy

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install

Thêm phần mở rộng vào php của bạn. ban đầu

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
0

Cuối cùng, khởi động lại máy chủ web

PECL / Windows

Bạn cũng có thể cài đặt tiện ích mở rộng này qua PECL

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
1

hoặc bằng cách tải xuống tệp DLL từ PECL hoặc cửa sổ. php. net và đặt nó vào thư mục thích hợp

Nix / NixOS

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
2

với phiên bản tùy chỉnh của PHP

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
3

hoặc, trong tệp

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
7

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
5

Sử dụng với nhà soạn nhạc

Trong dự án của bạn, bạn có thể ngăn việc cài đặt các gói soạn nhạc không cần thiết được cung cấp bởi tiện ích mở rộng này bằng cách thêm phần sau vào

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
8 của bạn. Bạn sẽ cần đảm bảo rằng tiện ích mở rộng đã được cài đặt và kích hoạt trong cấu hình PHP của bạn. Bạn cũng có thể muốn xem xét để chúng được cài đặt để cung cấp sơ khai cho IDE của bạn. Cấu hình này không phù hợp với thư viện được xuất bản cho packagist

Ghi chú.

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
9 và
git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
00 từ
git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
01 không được triển khai. Nếu bạn sử dụng các lớp này, bạn nên cài đặt
git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
01 (thảo luận)

git clone https://github.com/jbboehr/php-psr.git
cd php-psr
/usr/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
1

Điều này sẽ sử dụng tiện ích mở rộng PHP này thay vì tải xuống từ packagist

Tín dụng

  • @sergeyklay - Cải tiến tài liệu và băng tải ứng dụng
  • @flyinghail - Hỗ trợ PSR-14, PSR-15, PSR-17 và PSR-18
  • @Jan-E - Mẫu băng tải ứng dụng gốc
  • Tất cả những người đóng góp

Giấy phép

Dự án này là phần mềm mã nguồn mở được cấp phép theo Giấy phép BSD Đơn giản hóa. Xem GIẤY PHÉP. md để biết thêm thông tin

PSR là viết tắt của PHP là gì?

The Khuyến nghị tiêu chuẩn PHP (PSR) là một đặc tả PHP được xuất bản bởi PHP Framework Interop Group. Tương tự như Yêu cầu đặc tả Java cho Java, nó phục vụ cho việc tiêu chuẩn hóa các khái niệm lập trình trong PHP.

PRS trong PHP là gì?

Khuyến nghị tiêu chuẩn PHP (PSR) là một đặc tả PHP được xuất bản bởi PHP Framework Interoperability Group (PHP-FIG) . Nó phục vụ cho việc chuẩn hóa các khái niệm lập trình trong PHP. Mục đích là để cho phép khả năng tương tác của các thành phần. PHP-FIG được hình thành bởi một số người sáng lập khung công tác PHP.

PSR trong laravel là gì?

PSR này mô tả thông số kỹ thuật để tự động tải các lớp từ đường dẫn tệp . Nó hoàn toàn có thể tương tác và có thể được sử dụng cùng với bất kỳ thông số kỹ thuật tải tự động nào khác, bao gồm cả PSR-0. PSR này cũng mô tả nơi đặt các tệp sẽ được tải tự động theo thông số kỹ thuật.

Phương pháp PSR là gì?

Phương pháp PSR sử dụng Bst DNA polymerase và một cặp mồi được thiết kế nhắm vào trình tự gen blaNDM-1 . Các trình tự mồi Tab xuôi và ngược đảo ngược với nhau ở đầu 5' (Nr và N), trong khi các trình tự đầu 3' của chúng bổ sung cho các trình tự axit nucleic đích tương ứng của chúng.