日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

thinkphp php resque,麻花儿

發(fā)布時間:2025/4/5 php 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 thinkphp php resque,麻花儿 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

chen-yaf

其實很早之前就接觸yaf了,但只是學習學習,沒有深入的去了解和使用,但由于最近在重構一個項目,而重構所用到的框架就是yaf框架,正好趁此機會好好地使用了下yaf框架。本篇文章其實主要給一個yaf的例子,就是擴展了下yaf,因為yaf的東西本身就簡單,所以快。鳥哥也給了兩個例子,laruence/yaf-examples,一個是在yaf里使用Smarty的例子,還有一個是在yaf里加了DB和Log操作的包的例子。我給的yaf例子地址是:https://github.com/jsyzchen/chen-yaf

配置

extension=yaf.so

yaf.use_namespace=1 ;開啟命名空間

yaf.use_spl_autoload=1 ;開啟自動加載

先編輯conf/application.ini文件

[common]

application.directory = APP_ROOT

application.view.ext = "html"

application.view.engine = "twig"

;user

user.default_filter = 'trim,addslashes,htmlspecialchars'

[product : common]

;twig

twig.cache = APP_ROOT "/storage/twig/cache"

;database

database.driver = 'mysql'

database.read.host = '127.0.0.1'

database.write.host = '127.0.0.1'

database.port = '3306'

database.database = 'test'

database.username = 'root'

database.password = '123456'

database.charset = 'utf8'

database.collation = 'utf8_unicode_ci'

database.prefix = ''

database.strict = false

[develop : common]

application.dispatcher.catchException = TRUE

;twig

twig.debug = true

;socketlog

socketlog.enable = true

socketlog.host = 'localhost'

socketlog.optimize = true

socketlog.show_included_files = true

socketlog.error_handler = true

socketlog.force_client_ids = ''

socketlog.allow_client_ids = 'slog_78de03'

;database

database.driver = 'mysql'

database.host = '127.0.0.1'

database.port = '3306'

database.database = 'test'

database.username = 'root'

database.password = '123456'

database.charset = 'utf8'

database.collation = 'utf8_unicode_ci'

database.prefix = ''

database.strict = false

database為MySql數據庫的配置,socketlog為socketlog的配置,twig為twig模板引擎的配置

因為chen-yaf使用的是composer包,首先你得安裝composer,然后在項目目錄下建一個composer.json文件,內容如下:

{

"require": {

"php": ">=5.5.9",

"illuminate/database": "5.1.*",

"illuminate/events": "5.1.*",

"symfony/debug": "2.6.*",

"symfony/var-dumper": "2.6.*",

"twig/twig": "^1.26"

},

"autoload": {

"psr-4": {

"App\\Models\\": "application/models"

}

}

}

然后記得

composer install

編輯Bootstrap.php文件

/**

* 加載vendor下的文件

*/

public function _initLoader()

{

\Yaf\Loader::import(APP_ROOT . '/vendor/autoload.php');

}

/**

* 配置

*/

public function _initConfig()

{

$this->config = \Yaf\Application::app()->getConfig();//把配置保存起來

\Yaf\Registry::set('config', $this->config);

}

Eloquent ORM

Eloquent ORM是Laravel框架里的ORM。

yaf里是沒有數據庫操作類的,可以自己寫一個DAO層,或者直接使用第三方包,推薦Medoo和Eloquent ORM,chen-yaf里面是使用的Eloquent ORM。

編輯Bootstrap.php文件,添加_initDefaultDbAdapter方法

/**

* 初始化數據庫分發(fā)器

* @function _initDefaultDbAdapter

* @author jsyzchenchen@gmail.com

*/

public function _initDefaultDbAdapter()

{

//初始化 illuminate/database

$capsule = new \Illuminate\Database\Capsule\Manager;

$capsule->addConnection($this->config->database->toArray());

$capsule->setEventDispatcher(new \Illuminate\Events\Dispatcher(new \Illuminate\Container\Container));

$capsule->setAsGlobal();

//開啟Eloquent ORM

$capsule->bootEloquent();

class_alias('\Illuminate\Database\Capsule\Manager', 'DB');

}

然后在application/model下建一個Model基類,EloquentModel.php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class EloquentModel extends Model

{

}

然后所有的Model類都繼承EloquentModel,這樣就可以像在Laravel里操作數據庫了,另外DB也是能使用的,和Laravel里的DB facade使用方法一樣。文檔:https://laravel-china.org/docs/5.1/eloquent , https://laravel-china.org/docs/5.1/database

twig

twig是Symfony框架里的模板引擎,當然它也可以單獨使用。模板引擎也可以使用Smarty,如果你想擁有頁面緩存的功能,請用Smarty。

編輯Bootstrap.php文件,添加_initTwig方法

/**

* Twig View

* @param \Yaf\Dispatcher $dispatcher

*/

public function _initTwig(\Yaf\Dispatcher $dispatcher)

{

$twig = new \Twig\Adapter(APP_PATH . "/views/", $this->config->get("twig")->toArray());

$dispatcher->setView($twig);

}

這樣就可以在html文件里使用twig模板引擎了

SocketLog

SocketLog是ThinkPHP框架核心開發(fā)者“羅飛”開發(fā)的一個調試的工具,使用過ThinkPHP5框架的應該很熟悉。更多的介紹可以閱讀我的另一篇文章:日志服務。

我把SocketLog相關的文件放在library/Common/Logger目錄下了,當你安裝完SocketLog并配置好,在Bootstrap.php添加_initLogger方法。

/**

* 日志

* @param \Yaf\Dispatcher $dispatcher

*/

public function _initLogger(\Yaf\Dispatcher $dispatcher)

{

//SocketLog

if (Yaf\ENVIRON === 'develop') {

if ($this->config->socketlog->enable) {

//載入

\Yaf\Loader::import('Common/Logger/slog.function.php');

//配置SocketLog

slog($this->config->socketlog->toArray(),'config');

}

}

}

然后就可以在Chrome里調試你的代碼了。

其他

chen-yaf引入了一些函數,放在library/Common/functions.php里了,都是一些常用的函數,如果你的項目中有其他的函數往里面加就行了。編輯Bootstrap.php,添加_initFunction方法。

/**

* 公用函數載入

*/

public function _initFunction()

{

\Yaf\Loader::import('Common/functions.php');

}

總結

chen-yaf只是一個很簡單的yaf例子,加了Eloquent ORM和twig。實際項目中,還需要不斷地往里面添加東西。既然我們使用了composer包,那么我們在做自己的項目時就可以很方便的使用第三方包,避免我們重復造輪子。

推薦一些第三方包吧,也是我們在重構項目里所用到的。

1.carbon:對于時間日期的操作。

2.php-resque:隊列的操作。

3.sokil/php-mongo:mongodb的操作。

4.monolog:日志的操作。

總結

以上是生活随笔為你收集整理的thinkphp php resque,麻花儿的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。