<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                > 原文出處:https://jellybool.com/post/programming-with-yii2-getting-started-with-install-and-hello-world 嗯,今天起打算寫一個系列教程來過一遍[Yii2](http://www.yiiframework.com/),沒錯,我就是來安利大家使用`Yii2`的。至于最愛的`Laravel`,后面是打算會有教程的,只是不知道是系列博文還是直接錄視頻而已,因為`Laravel`貌似想講的東西實在是太多了。給`Laravel`發完金水之后,還是回到`Yii2`本身吧。 額,如果你還沒聽說過什么是`Yii`,可以直接看下面的鏈接: [http://www.yiiframework.com/](http://www.yiiframework.com/) ## 安裝Yii2 打算從頭開始,所以,連安裝`Yii2`也稍微寫一點吧。安裝`Yii2`最好的方式就是使用`composer`: ~~~ composer global require "fxp/composer-asset-plugin:~1.0.3" composer create-project --prefer-dist yiisoft/yii2-app-basic helloYii ~~~ 等待一小段時間之后(如果等太久或直接報錯,請使用VPN),在這兩步你應該會看到類似下面的信息: ~~~ Updating dependencies (including require-dev) - Installing fxp/composer-asset-plugin (v1.0.3) Downloading: 100% Writing lock file Generating autoload files > yii\composer\Installer::postCreateProject chmod('runtime', 0777)...done. chmod('web/assets', 0777)...done. chmod('yii', 0755)...done. ~~~ 這里的第一條命令跟官方文檔的有稍微的差別,官方文檔還是停留在`fxp/composer-asset-plugin:~1.0.0`,在我寫這篇文章的時候,最新版本為`fxp/composer-asset-plugin:~1.0.3`。所以這里會有一些些不一樣。 > 注,我直接將`helloYii`項目放在了桌面,你可以根據自己的喜好調整目錄 安裝完`Yii2`之后,進入到項目的`web/`目錄: ~~~ cd helloYii/web ~~~ 開啟PHP內置服務器: ~~~ php -S localhost:8999 ~~~ 然后再瀏覽器輸入`localhost:8999`,你就可以看到下面的頁面了: ![替代文字](https://box.kancloud.cn/2015-08-15_55cf2bfba4eab.png) 這里需要說明的是:我是在mac下進行的開發,并且處于便捷的原因,我后續也會一直使用PHP內置服務器,也就是說本教程的`localhost:8999`是我默認的首頁地址。至于用[MAMP for OS X](https://www.mamp.info/en/)的用戶,你可以直接配置`MAMP` ~~~ cd /Applications/MAMP/htdocs ln -s ~/Desktop/helloYii/ /Applications/MAMP/htdocs/helloYii ~~~ 然后你可以訪問這樣的地址:`http://localhost:8888/helloYii/web`,不出意外,你也可以看`Yii`默認的可愛首頁了。 對于用Windows的同學,我建議你們直接用[WAMP](http://www.wampserver.com/en/),不過具體配置我倒是沒有實際操作過,所以不做任何評論。 關于Yii2 MVC的支持就基本不用多說了,之前發過一篇文章粗略地說過一遍。而在這里我想說明的是:在Yii2中,我們的單入口文件是`web/index.php`,所以剛剛在開啟PHP內置服務器的時候需要來到這個目錄,不過如果你直接指定也是可以的。這個文件負責將Yii2項目所需要的東西全部加載完成之后,最后通過`run`方法來使得整個項目可以跑起來: ~~~ <?php // comment out the following two lines when deployed to production defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); require(__DIR__ . '/../vendor/autoload.php'); require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); $config = require(__DIR__ . '/../config/web.php'); (new yii\web\Application($config))->run(); ~~~ 默認的情況下,我們看到的Yii2首頁是`/controllers/SiteController.php`下的`Index`方法: ~~~ public function actionIndex() { return $this->render('index'); } ~~~ 通常情況下,控制器一般都會有比較多的方法來鏈接模型和視圖之間的橋梁,但是方法雖多,很多時候都只是一些簡單的代碼和邏輯,所以,不用擔心。 上面的`Index`方法渲染了`index`這個模版,而這個模板位于`/views/site/index.php`,至于控制器和視圖之間的命名規則,參考這里: ~~~ views/ControllerID/ViewName.php ~~~ `ControllerID`?: 表示控制器的`ID`,也就是控制器去掉`Controller`的前綴,比如`SiteController`就對應`site` `ViewName`?: 是對應方法的名字,但是不包括`action`字眼,比如`actionIndex`對應的是`index.php` 而在使用`render`方法來渲染視圖的時候,`Yii2`默認地也會渲染載入`/views/layouts/main.php`這個文件,而這個文件做的事就是載入一些html頭部的共用文件,比如`js`,`css`,導航欄和底部繁榮導航欄等。這里其實我們最值得關心的其實就是下面這段代碼的`<?= $content ?>`: ~~~ <?= Breadcrumbs::widget([ 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], ]) ?> <?= $content ?> </div> ~~~ 這個`<?= $content ?>`可以說就是我們之后定義視圖的內容,我們后續創建的視圖文件會被讀成字符串的形式賦給`$content`,然后進行渲染顯示。 ## Hello World 有了上面的安裝和基本知識之后,我們就可以自己動手來創建一個頁面了。不過在創建頁面之前,我們先來做一點簡單的配置:開啟Yii2的`enablePrettyUrl`模式,因為這樣對于后續的開發會便捷很多,而且開啟之后,我們的url也會變得很簡潔又好,不想現在這樣: ~~~ http://localhost:8999/index.php?r=site%2Fabout ~~~ 這是我點擊首頁導航欄的`About`出現的`url`,一看到這個,我是拒絕的,所以來到`/config/web.php`這個配置文件中,找到`'components' => []`這個數組,加入下面的兩行代碼: ~~~ 'urlManager' => [ 'showScriptName' => false, 'enablePrettyUrl' => true ], ~~~ 加入之后,正確的代碼配置是長成這個樣子的: ~~~ 'components' => [ 'urlManager' => [ 'showScriptName' => false, 'enablePrettyUrl' => true ], 'request' => [ ~~~ 這樣開啟`enablePrettyUrl`模式之后,我們就可以通過`http://localhost:8999/site/about`來訪問我們的`About`頁面了,這里的規律是這樣的: ~~~ http://localhost:8999/ControllerID/ActionName ~~~ 比如,我們在`/controllers/SiteController.php`創建一個`Say`操作方法: ~~~ public function actionSay($target = 'World') { return $this->render('say', ['target' => $target]); } ~~~ 我們要訪問這個方法的正確路徑就是`http://localhost:8999/site/say`?。 在Yii中使用`action`關鍵字前綴來區分用于url操作方法和其他方法,這里的`actionSay`接收一個參數`$target`,如果用戶在訪問的時候傳入target參數,`target`就為用戶傳入的值,而如果用戶沒有傳入,我們將其默認值設為World。有了控制器的方法,從`$this->render('say', ['target' => $target])`這行代碼來看,我們需要需要創建一個`say.php`模板文件,這個文件是在哪里的呢? 根據前面說的視圖模板規則,它應該位于:`/views/site/say.php`。在里面簡單寫上下面這一小段代碼: ~~~ <?php use yii\helpers\Html; ?> <h1>Hello <?= Html::encode($target) ?></h1> <p>Welcome to your Yii2 demonstration application.</p> ~~~ 出于安全的因素考慮,我們在`say.php`這個模版文件中使用了`yii\helpers\Html`類來對用戶傳入的數據進行過濾,所以我們才有了這樣的輸出: ~~~ <?= Html::encode($target) ?> ~~~ 我們來訪問`http://localhost:8999/site/say`試試,不出意外這時你看到的是這樣的: ![替代文字](https://box.kancloud.cn/2015-08-15_55cf2bfc13059.png) 然后我們再來訪問 : `[http://localhost:8999/site/say?target=少年,還是用Yii吧](http://localhost:8999/site/say?target=%E5%B0%91%E5%B9%B4%EF%BC%8C%E8%BF%98%E6%98%AF%E7%94%A8Yii%E5%90%A7) ![替代文字](https://box.kancloud.cn/2015-08-15_55cf2bfc46fa7.png) 雖然說在這里演示用中文不太和諧,但是沒辦法,我得安利一下各位少年,上手Yii2吧。 第一篇先寫到這里了吧,下一篇打算再說說`Yii2`的`MVC`,`Fomrs`?和`Layouts`這幾個知識點。 **Happy Hacking** 源碼會放在Github:[](https://github.com/JellyBool/helloYii)[https://github.com/JellyBool/helloYii](https://github.com/JellyBool/helloYii)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看