首页
关于
WOW怀旧
友链
留言
更多
壁纸
直播
Search
1
关于《杀死那个石家庄人》背后的故事
3,801 阅读
2
沈阳故宫之旅
609 阅读
3
摄影记录|鸿恩寺
563 阅读
4
Laravel-admin 删除行|删除回调
366 阅读
5
EasyWechat 微信小程序接入微信支付|笔记
363 阅读
编程技术
GoLang
Vue
PHP
Linux
Redis
网络安全
生活杂记
登录
Search
标签搜索
PHP
随笔
Mysql
Laravel-Admin
Laravel
摄影
设计模式
Ab
Linux
Javascript
MAC
支付
CentOs
sh
嘉陵江
南滨路
蓝易云
redis
karlina
累计撰写
57
篇文章
累计收到
132
条评论
首页
栏目
编程技术
GoLang
Vue
PHP
Linux
Redis
网络安全
生活杂记
页面
关于
WOW怀旧
友链
留言
壁纸
直播
搜索到
57
篇与
的结果
2022-03-15
PHP(DI)依赖注入
依赖注入{callout color="#f0ad4e"}本质上是指对类的依赖通过构造器完成自动注入通俗来说,就是你当前操作一个类,但是这个类的某些方法或者功能不是单单只靠这个类就能完成的,而是要借助另一个类的才能完成的最直接的标志就是 传参数据为对象 的时候。严格来说,你想在 另一个类中操作另一个类 ,这两个类之间形成了相互依赖关系, 传参的方式叫注入 {/callout}简单的例子<?php namespace App\Http\Controllers; class AdapterController { public $name = '欢迎访问依赖注入'; } 使用<?php namespace App\Http\Controllers; class IndexController { protected $Adapter; public function __construct(AdapterController $Adapter) { $this->Adapter = $Adapter; } public function test() { return 'Hello,' . $this->Adapter->name; } } 结果Hello,欢迎访问依赖注入高阶操作传统的写法<?php /** * 定义了一个消息类 * Class Message */ class Message{ public function seed() { return 'seed email'; } }/* * 订单产生的时候 需要发送消息 */ class Order{ protected $messager = ''; function __construct() { $this->messager = new Message(); } public function seed_msg() { return $this->messager->seed(); } } $Order = new Order(); $Order->seed_msg();{callout color="#f0ad4e"}上面的代码是我们传统的写法。首先由个消息发送的类。然后在我们需要发送消息的地方,调用发送消息的接口。有一天你需要添加一个发送短信的接口以满足不同的需求。那么你会发现你要再Message类里面做修改。同样也要再Order类里面做修改。这样就显得很麻烦。这个时候就有了依赖注入的思路。下面把代码做一个调整{/callout}依赖注入写法 为了约束我们先定义一个消息接口<?php namespace App\Http\Controllers; /** * 为了约束我们先定义一个消息接口 * Interface MessageInterface */ interface MessageInterface { public function send(); }有一个发送邮件的类<?php namespace App\Http\Controllers; /** * 有一个发送邮件的类 * Class SendEmailController */ class SendEmailController implements MessageInterface { public function send() { return 'send email'; } } 新增一个发送短信的类<?php namespace App\Http\Controllers; /** *新增一个发送短信的类 * Class SendSMSController */ class SendSMSController implements MessageInterface { public function send() { return 'send sms'; } } 订单产生的时候 需要发送消息<?php namespace App\Http\Controllers; /* * 订单产生的时候 需要发送消息 */ class OrderController { protected $messager = ''; function __construct(MessageInterface $message) { $this->messager = $message; } public function send_msg() { return $this->messager->send(); } } 调用<?php namespace App\Http\Controllers; class IndexController { public function test() { //我们需要发送邮件的时候 $message = new SendEmailController(); //将邮件发送对象作为参数传递给Order $Order = new OrderController($message); echo '触发邮件---'.$Order->send_msg().PHP_EOL; //我们需要发送短信的时候 $message = new SendSMSController(); $Order = new OrderController($message); echo '触发短信---'.$Order->send_msg().PHP_EOL; } } 结果触发邮件---send email 触发短信---send sms
2022年03月15日
215 阅读
2 评论
0 点赞
2022-03-15
xml转数组
代码function xmlToArray($xml) { //禁止引用外部xml实体 libxml_disable_entity_loader(true); $values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true); return $values; }
2022年03月15日
74 阅读
0 评论
0 点赞
2022-03-14
centos7安装Wkhtmltopdf
从官网下载预编译版安装:wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz解压tar xvfJ wkhtmltox-0.12.4_linux-generic-amd64.tar.xz移动位置并赋予权限cd wkhtmltox/bin sudo mv ./wkhtmltopdf /usr/bin/wkhtmltopdf sudo chmod +x /usr/bin/wkhtmltopdf修复字体yum install urw-fonts libXext openssl-devel解决中文不显示问题将 windows下的字体,例如simsun.ttc ,或者msyh.ttf,或者msyhbd.ttf 复制到 linux系统 /usr/share/fonts 下这里附上文字包 {cloud title="simsum.ttc" type="default" url="https://blog.karlina.cn/simsun.zip" password="无"/}tips:若为docker环境,字体目录需要与宿主机映射否则需要放到docker容器内的/usr/share/fonts 下进入字体库目录,刷新系统即刻生效,输入命令mkfontscale mkfontdir fc-cache测试wkhtmltopdf http://www.baidu.com ./test.pdf
2022年03月14日
273 阅读
0 评论
0 点赞
2022-03-14
laravel-admin 报错 | Disk [admin] not configured, please add a disk config in `config/filesystems.php`.
config/filesystems.php 添加admin 文件上传配置 'admin' => [ 'driver' => 'local', 'root' => public_path('upload'), 'visibility' => 'public', 'url' => env('APP_URL').'/upload/', ],最终效果'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), ], 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], 's3' => [ 'driver' => 's3', 'key' => env('AWS_KEY'), 'secret' => env('AWS_SECRET'), 'region' => env('AWS_REGION'), 'bucket' => env('AWS_BUCKET'), ], 'admin' => [ 'driver' => 'local', 'root' => public_path('upload'), 'visibility' => 'public', 'url' => env('APP_URL').'/upload/', ], ],
2022年03月14日
223 阅读
0 评论
0 点赞
2022-03-14
Mysql根据经纬度计算距离并排序
计算公式纬度:31.182592 store_locy 经度:121.431744 store_locx按M计算{callout color="#f0ad4e"}计算出来的结果单位为m{/callout} SELECT *, ROUND( 6378.138 * 2 * ASIN( SQRT( POW( SIN( ( 31.182592 * PI() / 180 - store_locy * PI() / 180 ) / 2 ), 2 ) + COS(31.182592 * PI() / 180) * COS(store_locy * PI() / 180) * POW( SIN( ( 121.431744 * PI() / 180 - store_locx * PI() / 180 ) / 2 ), 2 ) ) ) * 1000 ) AS distance FROM t_merchant_store ORDER BY distance ACS按KM计算{callout color="#f0ad4e"}计算出来的结果单位为km{/callout} SELECT *, ( 2 * 6378.137 * ASIN( SQRT( POW( SIN( PI( ) * ( 121.431744- store_locx ) / 360 ), 2 ) + COS( PI( ) * 31.182592 / 180 ) * COS( store_locy * PI( ) / 180 ) * POW( SIN( PI( ) * ( 31.182592- store_locy ) / 360 ), 2 ) ) ) ) AS distance FROM t_merchant_store ORDER BY distance ASC转自: https://blog.csdn.net/lishuaiqi_d/article/details/105428037
2022年03月14日
126 阅读
0 评论
0 点赞
1
...
6
7
8
...
12