Rumah >pembangunan bahagian belakang >tutorial php >PHP Master | Menulis Perkhidmatan Web RESTful dengan Slim
Konsep Utama:
post()
, dan put()
kaedah untuk membuat, mengemas kini, dan memadam rekod buku masing -masing. delete()
Memperkenalkan Slim:
Mulailah dengan memuat turun Slim. Contoh ini menggunakan gaya 5.3. Buat: index.php
<code class="language-php"><?php require "Slim/Slim.php"; $app = new Slim(); $app->get("/", function () { echo "<h1>Hello Slim World</h1>"; }); $app->run(); ?></code>mengakses
dalam penyemak imbas anda memaparkan "Hello Slim World". Slim Autoloads Fail yang diperlukan. Pembina tipis menerima konfigurasi (mis., index.php
, MODE
, TEMPLATES.PATH
). VIEW
Menetapkan persekitaran (pembangunan/pengeluaran), dan MODE
menentukan direktori templat. Pengendali paparan tersuai boleh menggantikan lalai TEMPLATES.PATH
. Contoh: Slim_View
<code class="language-php"><?php $app = new Slim(array( "MODE" => "development", "TEMPLATES.PATH" => "./templates" )); ?></code>Penciptaan laluan adalah penting. Laluan peta URI ke fungsi panggil balik berdasarkan kaedah HTTP. Slim mengutamakan laluan sepadan pertama; Permintaan yang tidak dapat ditandingi mengakibatkan ralat 404. Selepas menentukan laluan, hubungi
untuk memulakan permohonan. run()
Membina Perkhidmatan Perpustakaan:
Mari buat perkhidmatan pengurusan perpustakaan. Notorm memudahkan interaksi pangkalan data (memerlukan contoh PDO).
<code class="language-php"><?php require "NotORM.php"; $pdo = new PDO($dsn, $username, $password); // Replace with your database credentials $db = new NotORM($pdo); ?></code>
Buku Penyenaraian:
endpoint ini menyenaraikan semua buku dalam format json:
<code class="language-php"><?php // ... (previous code) ... $app->get("/books", function () use ($app, $db) { $books = array(); foreach ($db->books() as $book) { $books[] = array( "id" => $book["id"], "title" => $book["title"], "author" => $book["author"], "summary" => $book["summary"] ); } $app->response()->header("Content-Type", "application/json"); echo json_encode($books); }); // ... (rest of the code) ...</code>
membolehkan mengakses pembolehubah luaran dalam fungsi tanpa nama. Header Response ditetapkan kepada get()
, dan data buku dikodkan sebagai JSON. use
application/json
Dapatkan buku dengan id:
Parameter laluan
<code class="language-php"><?php // ... (previous code) ... $app->get("/book/:id", function ($id) use ($app, $db) { $app->response()->header("Content-Type", "application/json"); $book = $db->books()->where("id", $id); if ($data = $book->fetch()) { echo json_encode(array( "id" => $data["id"], "title" => $data["title"], "author" => $data["author"], "summary" => $data["summary"] )); } else { echo json_encode(array( "status" => false, "message" => "Book ID $id does not exist" )); } }); // ... (rest of the code) ...</code>dihantar ke fungsi panggil balik. Parameter pilihan menggunakan
. Untuk parameter pilihan tanpa hujah panggil balik yang jelas, gunakan :id
. /book(/:id)
func_get_args()
Memadam buku: Padam buku dengan id: Kaedah Kesimpulan: Artikel ini menunjukkan membina perkhidmatan web yang tenang dengan Slim. Pembangunan selanjutnya harus termasuk pengendalian ralat yang mantap dan pengesahan input. Kod sumber (tidak termasuk di sini) boleh didapati di GitHub (pautan tidak disediakan dalam teks asal). Bahagian Soalan Lazim dari teks asal ditinggalkan kerana ia memberikan maklumat asas yang tersedia melalui dokumentasi Slim. post()
menambah, dan put()
mengemas kini buku: <code class="language-php"><?php
require "Slim/Slim.php";
$app = new Slim();
$app->get("/", function () {
echo "<h1>Hello Slim World</h1>";
});
$app->run();
?></code>
$app->request()->post()
dan $app->request()->put()
mengambil pos dan meletakkan data masing -masing. Untuk permintaan yang berasaskan pelayar, gunakan medan tersembunyi _METHOD
dengan nilai "letakkan" dalam bentuk anda. <code class="language-php"><?php
$app = new Slim(array(
"MODE" => "development",
"TEMPLATES.PATH" => "./templates"
));
?></code>
delete()
membuang rekod pangkalan data. Kaedah map()
mengendalikan pelbagai kaedah HTTP pada satu laluan (tidak ditunjukkan di sini).
Atas ialah kandungan terperinci PHP Master | Menulis Perkhidmatan Web RESTful dengan Slim. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!