国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

升級PHP7 jenssegers/mongodb expected to be a referen

tangr206 / 658人閱讀

摘要:上的擴展有兩個,都是官方出品的,一個叫,一個是,前者已經被官方廢棄,不再提供穩定的更新,官方推薦使用后者,并且后者是支持的。在上搜索即可找到,也可以通過安裝。使用作為中間件,不用修改現有代碼。

pecl上的mongodb擴展有兩個,都是官方出品的,一個叫mongo,一個是mongodb,前者已經被官方廢棄,不再提供穩定的更新,官方推薦使用后者,并且后者是支持php7的。在pecl上搜索mongodb即可找到,也可以通過pecl install mongodb安裝。mongo和mongodb的結構完全不同,使用方式也大相徑庭,不過官方有個php適配包,可以讓mongodb看上去和mongo使用體驗近似 https://github.com/mongodb/mo...

以上來自這個問題

目前用的 laravel-mongodb

WARNING: The old mongo PHP driver is not supported anymore in versions >= 3.0.

因為現在用的2.1 版本,而升級PHP7后用的mongodb 擴展,不兼容之前的mongo擴展,所以現在有2個選擇:

1.升級到3.0版本。
2.使用 https://github.com/alcaeus/mo... 作為中間件,不用修改現有代碼。

第二個方案來自 http://php.net/manual/zh/set....
There is an adapter - so old MongoClient / MongoDB code will run on the new PHP7/Mongo mess
https://github.com/alcaeus/mo...

第一個方案就不說了,現在說第二個。

composer config "platform.ext-mongo" "1.6.16" && composer require alcaeus/mongo-php-adapter

然后測試下

Message::create([ "title"=>"標題","content"=>"內容22","time"=>time()]);
提示:

ErrorException in Collection.php line 42:
Parameter 1 to MongoCollection::insert() expected to be a reference, value given

有問題怎么辦?當然搜索啊,于是 Google ,不得不說谷歌牛逼,第一條結果就找到了 https://github.com/alcaeus/mo...

再看看百度

翻不了bing.com 也行啊

或者搜 issue

打開第二個鏈接 https://github.com/jenssegers...
看最后這個鏈接 https://github.com/zamrih/lar...

然后修改源文件 jenssegers/mongodb/src/Jenssegers/Mongodb/Collection.php 雖然能解決,但這不是個好的辦法。

/**
      * Handle specific insert call.
      * Cannot be handled dynamically because a reference needs to be passed
      * @param  array|object   $document
      * @param  array   $options
      * @return mixed
      */
     public function insert(&$document, array $options = [])
     {
         return $this->__call("insert", array(&$document, $options));
     }
     
    /**
      * Handle specific batchInsert call.
      * Cannot be handled dynamically because a reference needs to be passed
      * @param  array   $a
      * @param  array   $options
      * @return mixed
      */
     public function batchInsert(array &$a, array $options = [])
     {
         return $this->__call("batchInsert", array(&$a, $options));
     }
     
    /**
      * Handle specific save call.https://github.com/zamrih/laravel-mongodb/commit/8c3b4aaaee773e0c2968b4ff215ccec5305394e2
      * Cannot be handled dynamically because a reference needs to be passed
      * @param  array|object   $document
      * @param  array   $options
      * @return mixed
      */
     public function save(&$document, array $options = [])
     {
         return $this->__call("save", array(&$document, $options));
     }

其實 https://github.com/alcaeus/mo... 給出提示了
The insert, batchInsert, and save methods take the first argument by reference. While the original API does not explicitely specify by-reference arguments it does add an ID field to the objects and documents given.

接著又出現新問題:
Fatal error: Call to undefined method MongoDBDriverReadConcern::isDefault() in ..srcOperationFind.php on line 193
搜索下
https://github.com/alcaeus/mo...
https://github.com/mongodb/mo...
https://github.com/mongodb/mo...

https://github.com/mongodb/mo... 這個提交增加了MongoDBDriverReadConcern::isDefault() 但他要求 MongoDB擴展1.3.0+

因為默認版本是PHP5,所以 pecl install mongodb 會提示

pecl config-show

pecl/mongodb requires PHP (version >= 5.5.0, version <= 7.99.99), installed version is 5.3.29
No valid packages found
install failed

ll /data/php7/bin/
total 124692
-rwxr-xr-x 1 root root      842 Feb  4  2016 pear
-rwxr-xr-x 1 root root      863 Feb  4  2016 peardev
-rwxr-xr-x 1 root root      779 Feb  4  2016 pecl
lrwxrwxrwx 1 root root        9 Feb  4  2016 phar -> phar.phar
-rwxr-xr-x 1 root root    14834 Feb  4  2016 phar.phar
-rwxr-xr-x 1 root root 42332852 Feb  4  2016 php
-rwxr-xr-x 1 root root 42161587 Feb  4  2016 php-cgi
-rwxr-xr-x 1 root root     3583 Feb  4  2016 php-config
-rwxr-xr-x 1 root root 43141643 Feb  4  2016 phpdbg
-rwxr-xr-x 1 root root     4537 Feb  4  2016 phpize

/data/php7/bin/pecl install mongodb

而現在用的是1.1.6版本,那只好升級了 到 http://pecl.php.net/package/m... 下載最新版本 http://pecl.php.net/get/mongo...

tar -zxf mongodb-1.5.2.tgz
cd mongodb-1.5.2
which php7
/data/php7/bin/phpize
which php-config
./configure --with-php-config=/data/php7/bin/php-config
make && make install
ll /data/php7/lib/php/extensions/no-debug-zts-20151012/
php7 -i |grep extension_dir
extension_dir => /data/php7/lib/php/extensions/no-debug-zts-20151012 => /data/php7/lib/php/extensions/no-debug-zts-20151012
sqlite3.extension_dir => no value => no value

php7 --ini
Configuration File (php.ini) Path: /data/php7/etc/
Loaded Configuration File:         /data/php7/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
vi /data/php7/etc/php.ini
extension=mongodb.so
php7 -m |grep mongodb
php7 -i|grep mongodb

鏈接:
https://github.com/alcaeus/mo...
https://github.com/mongodb/mo...
https://github.com/alcaeus/mo...
http://php.net/manual/en/mong...
http://php.net/manual/zh/mong...
http://php.net/manual/zh/set....
https://github.com/mongodb/mo...
https://secure.php.net/manual...
https://github.com/mongodb/mo...
https://github.com/alcaeus/mo...
pecl 更換對應php版本
車輪升級PHP7踩過的一些坑
《PHP 開發者實踐》
PHP 手冊拾遺
PHP 7 升級實踐
php7cc 輔助進行代碼檢查
php5 php7不兼容的地方
PHP7內核剖析
升級PHP7操作MongoDB
一篇寫給準備升級PHP7的小伙伴的文章

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19357.html

相關文章

  • 升級PHP7 jenssegers/mongodb expected to be a referen

    摘要:上的擴展有兩個,都是官方出品的,一個叫,一個是,前者已經被官方廢棄,不再提供穩定的更新,官方推薦使用后者,并且后者是支持的。在上搜索即可找到,也可以通過安裝。使用作為中間件,不用修改現有代碼。 pecl上的mongodb擴展有兩個,都是官方出品的,一個叫mongo,一個是mongodb,前者已經被官方廢棄,不再提供穩定的更新,官方推薦使用后者,并且后者是支持php7的。在pecl上搜索...

    BicycleWarrior 評論0 收藏0
  • laravel安裝jenssegers/laravel-mongodb拓展,以及遇到的坑

    摘要:再次打開包內源碼,發現了如下的細節敲黑板注意看路徑,此時是包內知道原理之后,于是在配置文件中做了如下修改至此,,收工 項目中使用了mongoDB,所以就到最大的同性交友網站找到了星星最多的jenssegers/laravel-mongodb 包安裝 1、根據README,找到本地laravel對應的包版本showImg(https://segmentfault.com/img/bVbr...

    icattlecoder 評論0 收藏0
  • laravel安裝jenssegers/laravel-mongodb拓展,以及遇到的坑

    摘要:再次打開包內源碼,發現了如下的細節敲黑板注意看路徑,此時是包內知道原理之后,于是在配置文件中做了如下修改至此,,收工 項目中使用了mongoDB,所以就到最大的同性交友網站找到了星星最多的jenssegers/laravel-mongodb 包安裝 1、根據README,找到本地laravel對應的包版本showImg(https://segmentfault.com/img/bVbr...

    fizz 評論0 收藏0
  • 下載量最高的「50 」個 Laravel 擴展包

    摘要:簡介另一個令人喜歡的地方,是擁有活躍的開發者社區,而活躍的開發者社區帶來的,是繁華的擴展包生態該項目統計了目前下載量最高的個擴展包。記得喲相信下面這些擴展包會讓你的編碼更加高效。排名下載量排名包地址下載次數描述圖片處理。 簡介 Laravel 另一個令人喜歡的地方,是擁有活躍的開發者社區,而活躍的開發者社區帶來的,是繁華的擴展包生態 ———— @Summer 該項目統計了目前 pack...

    liaorio 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<