Rumah > pembangunan bahagian belakang > tutorial php > PHP Macro untuk keseronokan dan keuntungan!

PHP Macro untuk keseronokan dan keuntungan!

William Shakespeare
Lepaskan: 2025-02-15 09:31:11
asal
432 orang telah melayarinya

Gunakan Perpustakaan Yay Preprocessor untuk menambah gula sintaks kepada PHP untuk dengan mudah melaksanakan kod yang lebih elegan! Artikel ini akan menunjukkan cara menggunakan Perpustakaan Yay untuk menambah gula sintaks Slice Array seperti Ruby untuk PHP. $many[4..8]

mata teras:

    Yay adalah perpustakaan preprocessor yang membolehkan pemaju menambah gula sintaksis ke bahasa lain kepada PHP melalui makro.
  • YAY memecahkan rentetan kod ke dalam tag, membina pokok sintaks abstrak (AST), kemudian menggantikan elemen makro dengan kod PHP sebenar, dan memasang semula kod PHP.
  • Walaupun terdapat beberapa batasan dalam skop dan parser yang berubah -ubah, yay masih membolehkan penciptaan kod PHP yang lebih bersih dan lebih cekap.
Banyak pemaju PHP datang dari latar belakang bahasa pengaturcaraan lain dan digunakan untuk beberapa sintaks ringkas dalam bahasa lain. Perpustakaan Yay dicipta untuk menyelesaikan masalah ini. Sebagai contoh, dalam Ruby, kita boleh menggunakan

untuk mendapatkan unsur -unsur kedua, ketiga, dan keempat dari array few = many[1..3]. Dan dalam PHP, kita perlu menggunakan many untuk mencapai fungsi yang sama. Jelas sekali, sintaks Ruby lebih ringkas dan elegan. $few = array_slice($many, 1, 3);

PHP Macros for Fun and Profit!

Dapatkan makro:

Pertama sekali, kita perlu memasang perpustakaan yay:

Seterusnya, kami membuat fail yang dipanggil
$ composer require yay/yay:dev-master
Salin selepas log masuk
dengan kod berikut:

array_slice.yphp

Kemudian, gunakan pengkompil yay untuk menukar fail
macro {
    T_VARIABLE·A[
        ···range
    ]
} >> {
    eval(
        '$list = ' . →(T_VARIABLE·A) . ';' .
        '$lower = ' . explode('..', →(···range))[0] . ';' .
        '$upper = ' . explode('..', →(···range))[1] . ';' .
        'return array_slice($list, $lower, $upper - $lower);'
    )
}

macro {
    →(···expression)
} >> {
    ··stringify(···expression)
}


$many = [
    "She walks in beauty",
    "like the night",
    "of cloudless climes",
    "and starry skies",
    "And all that's best",
    "of dark and bright",
    "meet in her aspect",
    "and her eyes",
    "...",
];

$lower = 4;
$upper = 8;

$few = $many[$lower..$upper];
Salin selepas log masuk
ke kod php standard:

.yphp

Fail
$ vendor/bin/yay array_slice.yphp >> array_slice.php
Salin selepas log masuk

array_slice.php

Prinsip kerja:
$many = [
    "She walks in beauty",
    "like the night",
    "of cloudless climes",
    "and starry skies",
    "And all that's best",
    "of dark and bright",
    "meet in her aspect",
    "and her eyes",
    "...",
];

$lower = 4;
$upper = 8;

$few = eval(
    '$list = ' . '$many' . ';'.
    '$lower = ' . explode('..', '$lower..$upper')[0] . ';' .
    '$upper = ' . explode('..', '$lower..$upper')[1] . ';' .
    'return array_slice($list, $lower, $upper - $lower);'
);
Salin selepas log masuk

YAY memecahkan rentetan kod ke dalam tag melalui parser, membina pokok sintaks abstrak (AST), dan menggantikan makro dengan kod PHP sebenar, dan akhirnya menghasilkan kod PHP yang boleh dilaksanakan. Oleh kerana batasan skop pembolehubah PHP, makro menggunakan fungsi , yang sedikit tidak teratur, tetapi berkesan melaksanakan fungsi yang diharapkan.

dengan yay, kita boleh menambah gula sintaks tersuai kepada PHP, meningkatkan kebolehbacaan dan kecekapan kod kami. Jika anda mempunyai lebih banyak idea atau cadangan mengenai perpustakaan Yay, sila tinggalkan mesej untuk dibincangkan. eval()

Atas ialah kandungan terperinci PHP Macro untuk keseronokan dan keuntungan!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan