link000 / finder
简单的文件内容搜索工具
Requires
- php: ^8.2
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.5
This package is not auto-updated.
Last update: 2024-09-28 17:33:20 UTC
README
默认情况下,它使用 ripgrep (https://github.com/BurntSushi/ripgrep) 搜索与您条件匹配的文件。
您可以创建自己的搜索驱动程序
待办事项
为了尽快在前端获取结果,我建议使用 websockets
例如,您可以使用 soketi (https://github.com/soketi/soketi) 或服务器端的第三方服务,如 pusher,以及前端上的 Laravel echo (https://github.com/laravel/echo)
当找到匹配项时,会触发 Link000\Finder\Events\SearchResultFoundEvent
事件
您可以实现自己的监听器并自行处理事件
在这种情况下,我建议通过将配置文件中的 broadcasting.method
设置为空值来关闭由包提供的广播功能
待办事项:依赖
- find
- ripgrep
配置
1. 使用配置文件
运行以下命令发布 finder 配置:
php artisan vendor:publish --provider="Link000\Finder\FinderServiceProvider" --tag="config"
并在 config/finder.php
文件中调整设置
2. 运行时配置
获取配置值
config('finder.search_base_path')
设置配置值
config('finder.search_base_path', '/my/custom/path')
配置
仅应用于在默认 routes/finder.php
文件中发布的路由上的选项
广播选项
其他选项
待办事项
broadcast_method broadcasting.broadcast_name broadcasting.channel_type (public/private, 如果用户未认证,将回退到公共频道) broadcasting.channel_name
添加自定义搜索驱动程序
您可以通过实现 Link000\Finder\Interfaces\FinderInterface
来添加自定义搜索驱动程序
- 创建您的自定义驱动程序并实现
Link000\Finder\Interfaces\FinderInterface
- 将您的驱动程序(包括完整命名空间)添加到 finder.drivers 配置中
// ... other configs 'drivers' => [ 'my_custom_driver' => App\Drivers\MyCustomSearchDriver::class, ],
- 激活您的驱动程序
- 通过更改
ENV
变量
FINDER_DRIVER='my_custom_driver'
- 通过更改
finder.driver
配置
// ... other configs 'driver' => 'my_custom_driver',
- 或设置运行时驱动程序
use Link000\Finder\Interfaces\FinderInterface class YourController { protected FinderInterface $finderService; public function __construct(FinderInterface $finderService) { $this->finderService = $finderService; } public function search() { // use your driver dynamically $this->finderService->setDriver(app(MyCustomSearchDriver::class)); } }
- 通过更改
安装预定义的堆栈
这将安装带有路由、控制器、服务、样式等的预定义堆栈
我 建议 您有一个 干净的 git 工作树,这样您可以看到新创建的文件
您应该根据您当前的应用程序进行自定义或删除不必要的组件
可用堆栈
vue
(vue + inertia, tailwind)blade
(blade, tailwind)api
(仅路由)
php artisan finder:install
关于包开发的说明
在包开发过程中将包添加到项目中
将其添加到您的应用 composer.json 中
"repositories": [ { "type": "path", "url": "/packages/*", "options": { "symlink": true } } ]
这将指示 composer 在 /packages 中查找包并创建一个指向已安装包的符号链接
symlink:false
将将包复制到 vendor 目录中,而不是创建符号链接(默认行为)
更新 composer
composer update