{"id":35190298,"url":"https://github.com/overlu/laravel-reget","last_synced_at":"2025-12-29T05:38:13.608Z","repository":{"id":57034232,"uuid":"256435907","full_name":"overlu/laravel-reget","owner":"overlu","description":"nacos laravel ","archived":false,"fork":false,"pushed_at":"2020-06-22T08:06:05.000Z","size":59,"stargazers_count":8,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-06T20:01:56.746Z","etag":null,"topics":["laravel","laravel-nacos","nocas","php"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/overlu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-17T07:42:34.000Z","updated_at":"2022-11-03T14:56:10.000Z","dependencies_parsed_at":"2022-08-23T20:50:41.568Z","dependency_job_id":null,"html_url":"https://github.com/overlu/laravel-reget","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/overlu/laravel-reget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overlu%2Flaravel-reget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overlu%2Flaravel-reget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overlu%2Flaravel-reget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overlu%2Flaravel-reget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/overlu","download_url":"https://codeload.github.com/overlu/laravel-reget/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overlu%2Flaravel-reget/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28111185,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-29T02:00:07.021Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["laravel","laravel-nacos","nocas","php"],"created_at":"2025-12-29T05:38:12.622Z","updated_at":"2025-12-29T05:38:13.596Z","avatar_url":"https://github.com/overlu.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"### 前言\n#### 项目介绍\n`overlu/laravel-reget` 是一款基于laravel的nacos扩展\n\n#### 安装\n1. 引入扩展库\n```\nphp composer.phar require overlu/laravel-reget\n```\n2. 配置\n```php\n# publish config \nphp artisan vendor:publish --provider=\"Overlu\\Reget\\RegetServiceProvider\"\n```\n3. 注册服务提供者（laravel5.5之前需要操作）\n```php\n# 打开 config/app.php，注册如下服务提供者到 $providers 数组\nOverlu\\Reget\\RegetServiceProvider::class\n```\n4. 注册Facade\n```php\n# 然后添加如下门面到 $aliaes 数组\n'Reget' =\u003e \\Overlu\\Reget\\Facades\\Reget::class\n```\n\n#### 配置\n修改配置文件`reget.php`，根据参数说明修改相关参数，或者__`在.env文件中加入相关参数配置(建议)`__\n```php\n[\n'driver' =\u003e 'nacos',\n  'nacos' =\u003e [\n    'register_host' =\u003e env('NACOS_REGISTER_HOST', 'http://127.0.0.1:8848'),\n    'ip' =\u003e env('NACOS_SERVICE_HOST', ''),   // 服务实例IP\n    'port' =\u003e env('NACOS_SERVICE_PORT', ''), // 服务实例port\n    'namespaceId' =\u003e env('NACOS_SERVICE_NAMESPACE_ID', ''), // 命名空间ID\n    'weight' =\u003e env('NACOS_SERVICE_WEIGHT', '0.8'),  // 权重\n    'enabled' =\u003e env('NACOS_SERVICE_ENABLE', 'true'),  // 是否上线\n    'healthy' =\u003e env('NACOS_SERVICE_HEALTHY', 'true'),  // 是否健康\n    'metadata' =\u003e env('NACOS_SERVICE_METADATA', '{}'),  // 扩展信息 json\n    'clusterName' =\u003e env('NACOS_SERVICE_CLUSTER_NAME', 'DEFAULT'),  // 集群名\n    'serviceName' =\u003e env('NACOS_SERVICE_NAME', 'server_name'), // 服务名\n    'groupName' =\u003e env('NACOS_SERVICE_GROUP_NAME', 'DEFAULT_GROUP'),  // 分组名\n    'ephemeral' =\u003e env('NACOS_SERVICE_EPHEMERAL', 'true'), // 是否临时实例\n    'scheduled' =\u003e env('NACOS_SERVICE_SCHEDULED', 'true')\n  ]\n];\n```\n\n#### Usage\n##### 常用命令\n* 注册服务\n```shell\nphp artisan reget:register  // 根据配置文件注册\n```\n![J5YOe0.png](https://s1.ax1x.com/2020/04/28/J5YOe0.png)  \n```shell\nphp artisan reget:register --init  // 初始化配置并注册\n```\n![J5tYtS.png](https://s1.ax1x.com/2020/04/28/J5tYtS.png)  \n\n* 发送心跳\n```shell\nphp artisan reget:heartbeat   // 发送一次\n```\n![J5NGuR.png](https://s1.ax1x.com/2020/04/28/J5NGuR.png)  \n```shell\nphp artisan reget:heartbeat --cron  // 定时发送\n```\n![J5NR58.png](https://s1.ax1x.com/2020/04/28/J5NR58.png)  \n\n* 查看服务列表\n```shell\nphp artisan reget:list\n```\n![J5UmMd.png](https://s1.ax1x.com/2020/04/28/J5UmMd.png)  \n\n* 查看当前实例详情\n```shell\nphp artisan reget:instance\n```\n![J5UjTP.png](https://s1.ax1x.com/2020/04/28/J5UjTP.png)  \n\n* 移除当前实例\n```shell\nphp artisan reget:remove\n```\n![J5awXd.png](https://s1.ax1x.com/2020/04/28/J5awXd.png)  \n\n* 监听配置\n```shell\nphp artisan reget:listen key\n# 加入观察者\nphp artisan reget:listen key --handle=\"Namespace\\ClassName\"\n```\n![J58PVU.png](https://s1.ax1x.com/2020/04/28/J58PVU.png)   \n\n#####  ~~定时发送心跳（不建议）~~\n```shell\n# 1. 下面的 Cron 添加到你的服务器中\n* * * * * cd /path-to-your-project \u0026\u0026 php artisan schedule:run \u003e\u003e/dev/null 2\u003e\u00261\n```\n```php\n# 2. 在 App\\Console\\Kernel 类的 schedule 方法中定义所有的调度任务\nprotected function schedule(Schedule $schedule)\n{\n    $schedule-\u003ecommand('reget:heartbeat')-\u003eeveryMinute();\n}\n```\n##### 定时发送心跳\n```shell\nphp artisan reget:heartbeat --cron # 联调测试用\n# or\nphp artisan reget:heartbeat --cron\u003e\u003e/dev/null 2\u003e\u00261 \u0026\n```\n#### API\n##### 获取服务\n```php\n$service = \\Overlu\\Reget\\Reget::getInstance()-\u003eservice('service_name');\n# or \n$service = Reget::service('service_name');\nreturn $service;\n```\n\n##### 获取服务列表\n```php\n$services_list = \\Overlu\\Reget\\Reget::getInstance()-\u003eservices();\n# or \n$services_list = Reget::services();\n```\n\n##### 获取配置\n```php\n$config = \\Overlu\\Reget\\Reget::getInstance()-\u003econfig('key');  // 走缓存处理\n$config = \\Overlu\\Reget\\Reget::getInstance()-\u003econfig('key', false); // 直接获取远程配置数据\n# or \n$config = Reget::config('key'); // 走缓存处理\n$config = Reget::config('key', false); // 直接获取远程配置数据\n```\n\n##### 发布配置\n```php\n$response = \\Overlu\\Reget\\Reget::getInstance()-\u003epublish('key', 'string value');\n# or\n$response = Reget::publish('key', 'string value'); // return true\n```\n\n##### 删除配置\n```php\n$response = \\Overlu\\Reget\\Reget::getInstance()-\u003eremove('key'); # return true\n# or \n$response = Reget::remove('key');\n```\n\n##### 监听配置\n```php\nReget::listen('key'); # 可以curl请求路由\n```\nor\n```shell\nphp artisan reget:listen key\n```\nor 加入观察者\n```php\nphp artisan reget:listen key --handle=\"Namespace\\ClassName\"\n\n\u003c?php\n\nnamespace Namespace;\n\nClass ClassName\n{\n    /**\n     * @param $key\n     * @param $data\n     * @param $originData\n     */\n    public static function handle($key, $data, $originData)\n    {\n        dd($key, $data, $originData);\n    }\n\n    /**\n     * @param \\Exception $exception\n     */\n    public static function error(\\Exception $exception)\n    {\n        dd($exception-\u003egetCode());\n    }\n}\n```\n![J58PVU.png](https://s1.ax1x.com/2020/04/28/J58PVU.png)  \n\n##### 配置缓存\n```php\n# 读取配置缓存\n\\Overlu\\Reget\\Utils\\ConfigCache::get('key', 'group_name');\n# 写入配置缓存\n\\Overlu\\Reget\\Utils\\ConfigCache::set('key', 'group_name', 'content');\n```\n\n##### Env文件操作\n```php\n$env = new \\Overlu\\Reget\\Utils\\Env();\n# 读取env\n$value = env('key', 'default_value');\n# or \n$value = $env-\u003egetEnv('key', 'default_value');\n\n# 写入env\n$result = $env-\u003esetEnv('key', 'value');\n# 批量写入env数据，会自动插入空行分组\n$env-\u003esetEnvs([\n    'key1' =\u003e 'value1',\n    'key2' =\u003e 'value2'\n]);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverlu%2Flaravel-reget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foverlu%2Flaravel-reget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverlu%2Flaravel-reget/lists"}