网站首页 > 技术教程 正文
创建一个空的laravel项目
composer create-project --prefer-dist laravel/laravel pkg
在新建的 laravel 项目中建立如下目录 qiangzhiwang\testpkg\src,packages 目录和 app 目录同级。我们开发包的代码都放在这个 src 目录中,qiangzhiwang和 testpkg完全自定义。
mkdir -p packages/qiangzhiwang/testpkg/src
修改项目composer.json设定 PSR-4 命名空间
"psr-4": {
"App\\": "app/",
"Qiangzhiwang\\Testpkg\\" : "packages/qiangzhiwang/testpkg/src"
},
进入命令行执行composer dump-autoload将autoload重新生成一次
composer dump-autoload
(大礼包)30G-PHP进阶资料,助力大家达到30K
在qiangzhiwang/testpkg/src目录下书写一个简单的Md5Hasher类
<?phpnamespace Qiangzhiwang\Testpkg;/**
* Class Md5Hasher
* @package Qiangzhiwang\Testpkg
*/class Md5Hasher{
/**
* @param $value
* @param array $options
* @return string
*/
public function make($value, array $options =[])
{
$salt = isset($options['salt']) ? $options['salt'] :"";
return hash('md5',$value . $salt);
}
/**
* @param $value
* @param $hashValue
* @param array $options
* @return bool
*/
public function check($value , $hashValue , array $options=[])
{
$salt = isset($options['salt']) ? $options['salt'] :"";
return hash('md5',$value . $salt) === $hashValue;
}
}
接下来就是怎么把这个类融入到laravel容器中
php artisan make:provider Md5HasherProvider
执行完以上命令后,会在app/Providers目录下生成Md5HasherProvider.php将此文件移动到packages/qiangzhiwang/testpkg/src目录下
mv app/Providers/Md5HasherProvider.php packages/qiangzhiwang/testpkg/src/Md5HasherProvider.php
移动完成之后,要进行简单的修改以及完成容器注册
<?php
namespace Qiangzhiwang\Testpkg;
use Illuminate\Support\ServiceProvider;
class Md5HasherProvider extends ServiceProvider{
/**
* Register services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//
$this->app->singleton("md5hash",function (){
return new Md5Hasher();
});
}
}
在config/app.php文件中,providers数组中最后一行添加上
'providers' => [
/*
* Application Service Providers...
*/
.......
\Qiangzhiwang\Testpkg\Md5Hasher::class
],
测试使用
php artisan tinker
>>> app("md5hash")->make("123456")
=> "e10adc3949ba59abbe56e057f20f883e"
发布包提供给其他开发者下载,需要进入packages/qiangzhiwang/testpkg进行操作
composer init
然后通过git工具发布到github上,并同步https://packagist.org上,方可进行composer进行安装使用
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群。
猜你喜欢
- 2024-10-15 架构师之必杀技——反向代理&负载均衡器
- 2024-10-15 面试腾讯、字节等大厂后,我总结一份面试文档给大家参考
- 2024-10-15 swoole运行模式加速laravel应用的详细介绍
- 2024-10-15 「PHP 技巧」 不要直接克隆对象,请使用深拷贝
- 2024-10-15 Yii2负载均衡必备:MD4文件缓存技巧
- 2024-10-05 网站跨域的五种解决方式(浏览器解决跨域)
- 2024-10-05 用户登录实现(登录功能实现)
- 2024-10-05 使用kubeadm部署Kubernetes 1.22(kubeedge部署)
- 2024-10-05 PHP性能全面优化-值得收藏(php性能调优工具)
- 2024-10-05 ThinkPHP5的安装使用/tp5快速入门
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)