Flutter默认的APP是直接包含状态栏的,当然如果你使用Scaffold,并且设置了appBar,那就不用纠结,他能够管理沉浸式的顶部。
如果由自己控制,会发现statusBar,被APP的主要内容压着,所以必须要整体高度去掉statusBar(电池条)的高度
1、data:ui的方法:MediaQueryData.fromWindow(window).padding.top ,这个要import data:ui
2、context方法: MediaQuery.of(context).padding.top
方法2会有个小问题,如果你使用了SafeArea来进行包含项目,并设置top:true,你获取到的 top 就是 EdgeInsets.zero。即为0,看了下源码才发现,SafeArea其实就是Padding,根据你设置的参数设置好Padding后。同时remove了原来的padding。所以导致获取到的值就是0了。。。。因此使用方法2的时候。要先将top值存为全局变量才OK。
Valet 支持多版本下的PHP啦 。
要想valet支持多版本PHP,你必须要将valet升级到3.0以上
更新方法:
```
This super exciting new feature is now officially released, as a part of Valet 3! To update: 1. Update your global Valet constraint to "^3.0" 2. Run `composer global update laravel/valet` 3. Run `valet install` 4. Party On, Wayne!
```
so easy。如果你在使用mac,那个 phpmon也支持valet3啦 。记得更新哦
如果你已经装过,那么直接brew upgrade phpmon,如果你之前没有装过,支行
```
brew tap nicoverbruggen/homebrew-cask
brew install --cask phpmon
```
参考:
---自用
1、如果某个颜色没墨了,先检查吸气的是否开着(墨盒那边,要留一个孔,才会有气进入)。
2、把墨盒拿出来,拿出针筒(压墨器等),压紧,吸墨,持续30秒,然后松开,用湿纸巾擦干净
3、把墨盒放进去,这时候可能会出现1068错误(提示没墨,可能错误码会不一样),长按停止键10秒,搞定
---备用着
PHP有不少Redis库,比如pecl的Redis库(phpredis),就是直接自带了数组的存取和读出,因为他在存储和读出的时候自动序列化了。象是象predis就不行,如果你直接存一个数组去,那么它就会报warning,同时存一个Array到指定的KEY上。
但是predis允许你封装自定义的redis方法。比如jsonset/jsonget,这时候你利用这些自定义的方法来获取或写入数组即可。(基于Laravel,其他的也一样,其他参考:Setting arrays · Issue #136 · predis/predis (github.com))
只是官方的Issue中 【Predis\Profile\ServerProfile:】已经不存在了,要换成【Predis\Profile\Factory】,其余可以复制
----
基于Laravel的话,上述的数组可以放到config里,就啥出不用配置了~~
PHP代码
- if (!function_exists('yredis')) {
- class StringSetJson extends Predis\Command\StringSet
- {
- protected function filterArguments(array $arguments)
- {
- $arguments[1] = json_encode($arguments[1]);
- return $arguments;
- }
- }
-
- class StringGetJson extends Predis\Command\StringGet
- {
- public function parseResponse($data)
- {
- return json_decode($data, true);
- }
- }
-
- class StringSetPhp extends Predis\Command\StringSet
- {
- protected function filterArguments(array $arguments)
- {
- $arguments[1] = serialize($arguments[1]);
- return $arguments;
- }
- }
-
- class StringGetPhp extends Predis\Command\StringGet
- {
- public function parseResponse($data)
- {
- return unserialize($data);
- }
- }
-
-
-
-
-
-
- function yredis()
- {
- try {
- $redis = app('yredis');
- } catch (Exception $e) {
- app()->singleton('yredis', function ($app) {
- $config = $app->make('config')->get('database.redis', []);
- unset($config['options']['prefix']);
- if(env('REDIS_CLIENT') == 'predis'){
- $config['options']['profile'] = function ($options, $option) {
- $profile = \Predis\Profile\Factory::getDefault();
- $profile->defineCommand('jsonset', 'StringSetJson');
- $profile->defineCommand('jsonget', 'StringGetJson');
- $profile->defineCommand('phpset', 'StringSetPhp');
- $profile->defineCommand('phpget', 'StringGetPhp');
- return $profile;
- };
- }
- return new \Illuminate\Redis\RedisManager($app, \Illuminate\Support\Arr::pull($config, 'client', 'phpredis'), $config);
- });
- app()->bind('yredis.connection', function ($app) {
- return $app['yredis']->connection();
- });
- $redis = app('yredis');
- }
- return $redis;
- }
- }
因为laravel的默认config会带 prefix,所以写一个简单的,其实就是为了在写数据的时候不加 prefix 。。。
着实意外,域名突然过期了,在续费的时候又遇上了订单卡住。然后解析在某一瞬间突然就被干掉。
经过和供应商的沟通,2天后恢复了。也就是4-19日已经恢复。真让人纠结啊~
下次记得得一续2年
# whois.verisign-grs.com
Domain Name: NEATSTUDIO.COM
Registry Domain ID: 116852913_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.bizcn.com
Registrar URL: http://www.bizcn.com
Updated Date: 2022-04-19T06:12:59Z
Creation Date: 2004-04-12T07:05:54Z
Registry Expiry Date: 2023-04-12T07:05:54Z
Registrar: Bizcn.com, Inc.
Registrar IANA ID: 471
Registrar Abuse Contact Email:
Registrar Abuse Contact Phone:
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Name Server: F1G1NS1.DNSPOD.NET
Name Server: F1G1NS2.DNSPOD.NET
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
前前后后,居然过期了7天。。