Dengan populariti media dalam talian, permintaan untuk laman web berita juga semakin meningkat. Jika anda bercadang untuk membuat laman web berita, pertimbangkan untuk menggunakan rangka kerja Yii untuk membina tapak web anda. Yii ialah rangka kerja PHP popular yang direka untuk menjadikan pembangunan aplikasi web lebih mudah dan cekap.
Rangka kerja Yii mempunyai banyak kelebihan, termasuk:
Rangka kerja Yii ialah rangka kerja pantas yang mampu mengendalikan sejumlah besar Permintaan serentak. Ini kerana rangka kerja Yii menggunakan beberapa teknologi PHP terkini dan menggunakan pelbagai mekanisme caching untuk meningkatkan prestasi laman web. Ciri ini sangat penting untuk laman web berita kerana ia perlu dapat mengendalikan situasi trafik yang tinggi.
Rangka kerja Yii sangat fleksibel dan boleh dipanjangkan dan disesuaikan dengan mudah. Jika anda perlu menambah fungsi baharu atau mengubah suai fungsi sedia ada, rangka kerja Yii menyediakan antara muka sambungan dan perpustakaan kelas yang sangat jelas. Ini bermakna anda boleh menulis modul atau pemalam baharu dengan mudah dan menyepadukannya ke dalam tapak web anda.
Rangka kerja Yii direka bentuk dengan keselamatan sebagai prinsip dan menyediakan satu siri mekanisme perlindungan keselamatan. Mekanisme ini termasuk penapisan input, penyulitan data, pengesahan dan fungsi kebenaran. Mekanisme ini diperlukan untuk memastikan laman web berita anda tidak terdedah kepada penggodam atau ancaman keselamatan lain.
Sekarang, mari kita lihat cara membuat tapak web berita menggunakan rangka kerja Yii.
Langkah pertama, pasang rangka kerja Yii
Sebelum bermula, anda perlu memasang rangka kerja Yii. Terdapat dua cara untuk memasang rangka kerja Yii: melalui Komposer atau muat turun manual. Di sini, saya memilih kaedah pemasangan Komposer. Jika anda belum memasang Komposer, sila pasang Komposer dahulu dan tambahkannya pada laluan sistem anda.
Dalam terminal, pergi ke direktori projek anda dan jalankan arahan berikut untuk memasang rangka kerja Yii:
composer require yiisoft/yii2-app-basic
Arahan ini akan memasang templat aplikasi Yii Basic dan pustaka teras Yii. Selepas pemasangan selesai, anda boleh melaksanakan arahan berikut untuk menjalankan aplikasi Yii:
./yii serve
Perintah ini akan memulakan pelayan web tempatan dan menjalankan aplikasi Yii anda. Anda boleh membuka http://localhost:8080 dalam pelayar anda untuk melihat halaman utama tapak web anda.
Langkah kedua, reka pangkalan data laman web berita anda
Sebelum membuat sebarang aplikasi web, anda perlu mereka pangkalan data anda. Andaikan laman web berita kami memerlukan jadual pangkalan data berikut:
Dalam rangka kerja Yii, anda boleh menggunakan alat Migrasi untuk mencipta, mengemas kini dan mengurus pangkalan data anda. Anda boleh mencipta Migrasi baharu menggunakan arahan berikut:
./yii migrate/create create_news_table
Perintah ini akan mencipta kelas Migrasi bernama create_news_table
, yang akan digunakan untuk mencipta jadual news
dan jadual lain yang berkaitan (contohnya, category
dan user
jadual).
Dalam kelas create_news_table
, anda perlu menggunakan API pangkalan data rangka kerja Yii untuk mencipta jadual pangkalan data anda. Sebagai contoh, berikut ialah contoh kod untuk mencipta jadual news
:
<?php use yiidbMigration; class m210816_100000_create_news_table extends Migration { public function safeUp() { $this->createTable('news', [ 'id' => $this->primaryKey(), 'title' => $this->string()->notNull(), 'content' => $this->text(), 'category_id' => $this->integer(), 'user_id' => $this->integer(), 'created_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP'), ]); $this->addForeignKey('fk_news_category', 'news', 'category_id', 'category', 'id', 'CASCADE', 'CASCADE'); $this->addForeignKey('fk_news_user', 'news', 'user_id', 'user', 'id', 'CASCADE', 'CASCADE'); } public function safeDown() { $this->dropForeignKey('fk_news_category', 'news'); $this->dropForeignKey('fk_news_user', 'news'); $this->dropTable('news'); } }
Dalam kod ini, kami menggunakan kaedah createTable
rangka kerja Yii untuk mencipta jadual news
dan kemudian gunakan addForeignKey
kaedah untuk menentukan kunci asing Kekangan memastikan ketekalan data.
Dengan kelas Migrasi, anda boleh menggunakan arahan berikut untuk menjalankan Migration bagi mencipta jadual pangkalan data baharu:
./yii migrate/up
Arahan ini akan mencipta jadual pangkalan data baharu dan jadual lain yang berkaitan.
Langkah ketiga ialah mencipta model Yii
Dalam rangka kerja Yii, model tersebut ialah bahagian teras yang digunakan untuk mewakili logik dan data perniagaan, dan juga merupakan sebahagian daripada corak seni bina MVC. Dalam rangka kerja Yii, model ialah cara paling mudah dan berkuasa untuk memproses data.
Untuk mencipta model, anda boleh menggunakan arahan berikut:
./yii generate/model News --tableName=news
Arahan ini akan mencipta model bernama News
dan mengaitkannya dengan jadual news
. Seterusnya, anda perlu menyesuaikan model anda menggunakan kod berikut:
<?php namespace appmodels; use Yii; class News extends yiidbActiveRecord { public static function tableName() { return 'news'; } public function rules() { return [ [['title'], 'required'], [['content'], 'string'], [['category_id', 'user_id'], 'integer'], [['created_at'], 'safe'], [['title'], 'string', 'max' => 255], ]; } public function attributeLabels() { return [ 'id' => 'ID', 'title' => 'Title', 'content' => 'Content', 'category_id' => 'Category ID', 'user_id' => 'User ID', 'created_at' => 'Created At', ]; } }
Dalam kod ini, kami mentakrifkan nama jadual dan peraturan pengesahan untuk model News
dan juga mentakrifkan label untuk setiap atribut (untuk teks dipaparkan kepada pengguna). Anda boleh mengakses dan mengubah suai jadual data melalui model ini, contohnya:
$news = new News(); $news->title = 'Hello, World!'; $news->content = 'Welcome to my news website.'; $news->category_id = 1; $news->user_id = 1; $news->save();
Ini akan menambah item berita pada jadual news
.
Langkah keempat ialah mencipta pengawal dan pandangan Yii
Dalam rangka kerja Yii, pengawal ialah bahagian yang digunakan untuk mengendalikan permintaan pengguna dan memberikan respons. Pengawal mengarahkan permintaan pengguna kepada tindakan yang betul dan menggunakan fail paparan khusus untuk memberikan respons.
Untuk mencipta pengawal, anda boleh menggunakan arahan berikut:
./yii generate/controller News
Ini akan mencipta pengawal bernama NewsController
. Seterusnya, anda perlu menambah beberapa tindakan dalam pengawal, contohnya:
<?php namespace appcontrollers; use Yii; use appmodelsNews; use yiiwebController; class NewsController extends Controller { public function actionIndex() { $news = News::find()->all(); return $this->render('index', [ 'news' => $news, ]); } public function actionView($id) { $news = News::findOne($id); return $this->render('view', [ 'news' => $news, ]); } public function actionCreate() { $news = new News(); if ($news->load(Yii::$app->request->post()) && $news->save()) { return $this->redirect(['view', 'id' => $news->id]); } return $this->render('create', [ 'news' => $news, ]); } public function actionUpdate($id) { $news = News::findOne($id); if ($news->load(Yii::$app->request->post()) && $news->save()) { return $this->redirect(['view', 'id' => $news->id]); } return $this->render('update', [ 'news' => $news, ]); } public function actionDelete($id) { $news = News::findOne($id); $news->delete(); return $this->redirect(['index']); } }
Dalam kod ini, kami mentakrifkan lima tindakan: Index
, View
, Create
, Update
dan Delete
. Ini membentangkan fail paparan kepada pengguna dan mengembalikan respons berdasarkan permintaan pengguna.
Untuk mencipta fail paparan untuk operasi ini, contohnya:
app/views/news/index.php
app/views/news/view.php
app/views/news/create.php
app/views/news/update.php
你需要添加如下代码:
<?php foreach ($news as $item): ?> <div> <h2><?= $item->title ?></h2> <p><?= $item->content ?></p> <p><?= $item->created_at ?></p> <p>Author: <?= $item->user_id ?></p> <p>Category: <?= $item->category_id ?></p> <a href="<?= Yii::$app->urlManager->createUrl(['news/view', 'id' => $item->id]) ?>">View</a> <a href="<?= Yii::$app->urlManager->createUrl(['news/update', 'id' => $item->id]) ?>">Update</a> <a href="<?= Yii::$app->urlManager->createUrl(['news/delete', 'id' => $item->id]) ?>">Delete</a> </div> <?php endforeach; ?>
在这个代码中,我们用循环遍历新闻,然后为每个新闻输出标题、内容、日期、作者和分类,以及三个按钮View、Update和Delete。
第五步,定义Yii路由和URL规则
在Yii框架中,路由和URL规则告诉Yii框架如何将用户请求路由到正确的控制器和操作。
默认情况下,Yii框架使用/controller/action
格式的URL,例如/news/index
。但是你可以自定义路由和URL规则,例如将/news
路由到NewsController
的Index
操作。
要定义路由和URL规则,你可以使用如下代码:
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ // NewsController ['class' => 'yiiestUrlRule', 'controller' => 'news'], 'news' => 'news/index', 'news/create' => 'news/create', 'news/<id:d+>' => 'news/view', 'news/<id:d+>/update' => 'news/update', 'news/<id:d+>/delete' => 'news/delete', ], ],
在这个代码中,我们使用规则数组来自定义路由和URL规则。例如,我们将news
路由到NewsController
的Index
操作,而将news/create
路由到NewsController
的Create
操作。
第六步,测试Yii应用程序
现在,你已经创建了一个新闻网站,并使用Yii框架构建了它。要测试你的新闻网站,你可以在终端中运行如下命令启动本地Web服务器:
./yii serve
然后在浏览器中打开http://localhost:8080,查看你的新闻网站。
最后,当你为你的新闻网站添加更多功能时,你可以根据你的业务需要扩展Yii框架的功能。Yii框架提供了许多工具和类库,可以帮助你尽可能快地开发出高效、安全和易于扩展的Web应用程序。
Atas ialah kandungan terperinci Buat laman web berita menggunakan rangka kerja Yii. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!