Not in the top 1,000 by GitHub stars
fanqingxuan/awesome-skills
热门skills推荐,包括编程以及非编程等各种热门实用的skill
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/code-simplifier/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
86a055dcae16 → 86a055dcae16
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 86a055dcae16
No earlier version was observed for comparison.
skills/eino/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
86a055dcae16 → 86a055dcae16
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86a055dcae16
No earlier version was observed for comparison.
skills/gorm/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
86a055dcae16 → 86a055dcae16
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 86a055dcae16
No earlier version was observed for comparison.
skills/hyperf/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
86a055dcae16 → 86a055dcae16
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86a055dcae16
No earlier version was observed for comparison.
skills/laravel12/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
86a055dcae16 → 86a055dcae16
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86a055dcae16
No earlier version was observed for comparison.
skills/webman/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
86a055dcae16 → 86a055dcae16
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86a055dcae16
No earlier version was observed for comparison.
Verified commit 86a055dcae1698b116a121a8ab6727f18d3b57b0
git clone --filter=blob:none --no-checkout https://github.com/fanqingxuan/awesome-skills.git .hotskills/fanqingxuan-awesome-skills && git -C .hotskills/fanqingxuan-awesome-skills checkout --detach 86a055dcae1698b116a121a8ab6727f18d3b57b0
# Copy each selected skill directory from .hotskills/fanqingxuan-awesome-skills into .claude/skills/<skill-name>/Heat
0.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
code-simplifier
When your agent uses it
Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Use when the user needs to: (1) Simplify complex code, (2) Improve code readability, (3) Refactor for maintainability, (4) Apply coding standards, (5) Review and optimize code structure. Triggers on phrases like "简化代码", "优化代码", "重构代码", "提升可读性", "代码审查", "simplify code", "refactor code", "improve code clarity", "code review", "clean up code".
What it loads into context
Frontmatter
132 tokensAlways available to the agent
SKILL.md
1,075 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Core Principles
- Refinement Process
- Usage
- Examples
- Best Practices
- When to Use
- When NOT to Use
Files
SKILL.mdcore5,167 bytes
Read SKILL.md
# Code Simplifier
Expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality.
## Overview
You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions.
## Core Principles
### 1. Preserve Functionality
Never change what the code does - only how it does it. All original features, outputs, and behaviors must remain intact.
View the complete source on GitHubeino
When your agent uses it
Eino LLM/AI application development framework assistant (Golang). Use when the user needs to: (1) Build AI agents, (2) Create LLM applications, (3) Implement tool calling, (4) Build multi-agent systems, (5) Create workflows with Graph/Compose, (6) Implement streaming, (7) Human-in-the-loop patterns, or any other Eino framework development tasks. Triggers on phrases like "Eino 开发", "创建 Agent", "LLM 应用", "AI Agent", "Eino 框架", "构建智能体".
What it loads into context
Frontmatter
132 tokensAlways available to the agent
SKILL.md
5,470 tokensWhen the skill is activated
Reference documents
65,379 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 环境要求
- 快速开始
- 核心示例
- 核心概念
- 支持的模型
- 开发最佳实践
- 常用命令
- 官方资源
- 使用场景
- 注意事项
- 官方示例索引
- 参考文档
Scripts executed separately
references/docs_examples/adk/common/model/chat_model.goreferences/docs_examples/adk/common/prints/util.goreferences/docs_examples/adk/common/store/store.goreferences/docs_examples/adk/common/tool/approval_wrapper.goreferences/docs_examples/adk/common/tool/follow_up_tool.goreferences/docs_examples/adk/common/tool/graphtool/examples/1_chain_summarize/main.goreferences/docs_examples/adk/common/tool/graphtool/examples/2_graph_research/main.goreferences/docs_examples/adk/common/tool/graphtool/examples/3_workflow_order/main.goreferences/docs_examples/adk/common/tool/graphtool/examples/4_nested_interrupt/main.goreferences/docs_examples/adk/common/tool/graphtool/graph_tool.goreferences/docs_examples/adk/common/tool/review_edit_wrapper.goreferences/docs_examples/adk/common/trace/coze_loop.goreferences/docs_examples/adk/helloworld/helloworld.goreferences/docs_examples/adk/human-in-the-loop/1_approval/agent.goreferences/docs_examples/adk/human-in-the-loop/1_approval/main.goreferences/docs_examples/adk/human-in-the-loop/2_review-and-edit/agent.goreferences/docs_examples/adk/human-in-the-loop/2_review-and-edit/main.goreferences/docs_examples/adk/human-in-the-loop/2_review-and-edit/tool.goreferences/docs_examples/adk/human-in-the-loop/3_feedback-loop/main.goreferences/docs_examples/adk/human-in-the-loop/3_feedback-loop/reviewer_agent.goreferences/docs_examples/adk/human-in-the-loop/3_feedback-loop/writer_agent.goreferences/docs_examples/adk/human-in-the-loop/4_follow-up/follow_up_agent.goreferences/docs_examples/adk/human-in-the-loop/4_follow-up/main.goreferences/docs_examples/adk/human-in-the-loop/4_follow-up/trip_planner_agent.goreferences/docs_examples/adk/human-in-the-loop/5_supervisor/agent.goreferences/docs_examples/adk/human-in-the-loop/5_supervisor/main.goreferences/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/agent.goreferences/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/main.goreferences/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/tools.goreferences/docs_examples/adk/human-in-the-loop/7_deep-agents/agent.goreferences/docs_examples/adk/human-in-the-loop/7_deep-agents/main.goreferences/docs_examples/adk/human-in-the-loop/7_deep-agents/tools.goreferences/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/agent.goreferences/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/main.goreferences/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/tools.goreferences/docs_examples/adk/intro/agent_with_summarization/agent.goreferences/docs_examples/adk/intro/agent_with_summarization/summarization/prompt.goreferences/docs_examples/adk/intro/agent_with_summarization/summarization/summary.goreferences/docs_examples/adk/intro/agent_with_summarization/tools.goreferences/docs_examples/adk/intro/chatmodel/chatmodel.goreferences/docs_examples/adk/intro/chatmodel/subagents/agent.goreferences/docs_examples/adk/intro/chatmodel/subagents/ask_for_clarification.goreferences/docs_examples/adk/intro/chatmodel/subagents/booksearch.goreferences/docs_examples/adk/intro/custom/myagent.goreferences/docs_examples/adk/intro/http-sse-service/main.goreferences/docs_examples/adk/intro/session/session_values.goreferences/docs_examples/adk/intro/transfer/subagents/chatmodel.goreferences/docs_examples/adk/intro/transfer/transfer.goreferences/docs_examples/adk/intro/workflow/loop/loop_for_reflection.goreferences/docs_examples/adk/intro/workflow/loop/subagents/chatmodel.goreferences/docs_examples/adk/intro/workflow/parallel/parallel.goreferences/docs_examples/adk/intro/workflow/parallel/subagents/chatmodel.goreferences/docs_examples/adk/intro/workflow/sequential/sequential.goreferences/docs_examples/adk/intro/workflow/sequential/subagents/chatmodel.goreferences/docs_examples/adk/multiagent/deep/agents/code_agent.goreferences/docs_examples/adk/multiagent/deep/agents/web_search.goreferences/docs_examples/adk/multiagent/deep/generic/file_preview.goreferences/docs_examples/adk/multiagent/deep/generic/full_plan.goreferences/docs_examples/adk/multiagent/deep/generic/plan.goreferences/docs_examples/adk/multiagent/deep/generic/submit_result.goreferences/docs_examples/adk/multiagent/deep/main.goreferences/docs_examples/adk/multiagent/deep/operator.goreferences/docs_examples/adk/multiagent/deep/params/consts.goreferences/docs_examples/adk/multiagent/deep/params/params.goreferences/docs_examples/adk/multiagent/deep/tools/bash.goreferences/docs_examples/adk/multiagent/deep/tools/edit.goreferences/docs_examples/adk/multiagent/deep/tools/option.goreferences/docs_examples/adk/multiagent/deep/tools/python_runner.goreferences/docs_examples/adk/multiagent/deep/tools/read.goreferences/docs_examples/adk/multiagent/deep/tools/read_image.goreferences/docs_examples/adk/multiagent/deep/tools/submit_result.goreferences/docs_examples/adk/multiagent/deep/tools/tree.goreferences/docs_examples/adk/multiagent/deep/tools/wrap.goreferences/docs_examples/adk/multiagent/deep/utils/model.goreferences/docs_examples/adk/multiagent/deep/utils/utils.goreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/executor/code_agent.goreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/executor/executor.goreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/executor/web_search.goreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/planner/planner.goreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/replanner/replanner.goreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/report/report_agent.goreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/wrap_plan.goreferences/docs_examples/adk/multiagent/integration-excel-agent/generic/file_preview.goreferences/docs_examples/adk/multiagent/integration-excel-agent/generic/full_plan.goreferences/docs_examples/adk/multiagent/integration-excel-agent/generic/plan.goreferences/docs_examples/adk/multiagent/integration-excel-agent/generic/submit_result.goreferences/docs_examples/adk/multiagent/integration-excel-agent/main.goreferences/docs_examples/adk/multiagent/integration-excel-agent/operator.goreferences/docs_examples/adk/multiagent/integration-excel-agent/params/consts.goreferences/docs_examples/adk/multiagent/integration-excel-agent/params/params.goreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/bash.goreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/edit.goreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/option.goreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/python_runner.goreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/read.goreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/read_image.goreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/submit_result.goreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/tree.goreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/wrap.goreferences/docs_examples/adk/multiagent/integration-excel-agent/utils/model.goreferences/docs_examples/adk/multiagent/integration-excel-agent/utils/utils.goreferences/docs_examples/adk/multiagent/integration-project-manager/agent.goreferences/docs_examples/adk/multiagent/integration-project-manager/agents/coder.goreferences/docs_examples/adk/multiagent/integration-project-manager/agents/project_manager.goreferences/docs_examples/adk/multiagent/integration-project-manager/agents/researcher.goreferences/docs_examples/adk/multiagent/integration-project-manager/agents/reviewer.goreferences/docs_examples/adk/multiagent/layered-supervisor/agent.goreferences/docs_examples/adk/multiagent/layered-supervisor/layered_supervisor.goreferences/docs_examples/adk/multiagent/plan-execute-replan/agent/agent.goreferences/docs_examples/adk/multiagent/plan-execute-replan/plan-execute-replan.goreferences/docs_examples/adk/multiagent/plan-execute-replan/tools/ask_for_clarification.goreferences/docs_examples/adk/multiagent/plan-execute-replan/tools/travel_tools.goreferences/docs_examples/adk/multiagent/supervisor/agent.goreferences/docs_examples/adk/multiagent/supervisor/supervisor.goreferences/docs_examples/components/document/parser/customparser/custom_parser.goreferences/docs_examples/components/document/parser/customparser/parse.goreferences/docs_examples/components/document/parser/extparser/ext_parser.goreferences/docs_examples/components/document/parser/textparser/text_parser.goreferences/docs_examples/components/lambda/lambda.goreferences/docs_examples/components/model/abtest/ab_router.goreferences/docs_examples/components/model/abtest/example/main.goreferences/docs_examples/components/model/httptransport/curlrt.goreferences/docs_examples/components/model/httptransport/example/invoke/main.goreferences/docs_examples/components/model/httptransport/example/stream/main.goreferences/docs_examples/components/prompt/chat_prompt/chat_prompt.goreferences/docs_examples/components/retriever/multiquery/main.goreferences/docs_examples/components/retriever/router/main.goreferences/docs_examples/components/tool/jsonschema/main.goreferences/docs_examples/components/tool/mcptool/callresulthandler/main.goreferences/docs_examples/components/tool/middlewares/errorremover/errorremover.goreferences/docs_examples/components/tool/middlewares/errorremover/example/main.goreferences/docs_examples/components/tool/middlewares/jsonfix/example/main.goreferences/docs_examples/components/tool/middlewares/jsonfix/json_fix_middleware.goreferences/docs_examples/components/tool/middlewares/jsonfix/json_fix_middleware_test.goreferences/docs_examples/compose/batch/batch/node.goreferences/docs_examples/compose/batch/batch/options.goreferences/docs_examples/compose/batch/batch/store.goreferences/docs_examples/compose/batch/batch/types.goreferences/docs_examples/compose/batch/main.goreferences/docs_examples/compose/chain/main.goreferences/docs_examples/compose/graph/async_node/main.goreferences/docs_examples/compose/graph/async_node/service.goreferences/docs_examples/compose/graph/react_with_interrupt/main.goreferences/docs_examples/compose/graph/simple/graph.goreferences/docs_examples/compose/graph/simple/type_match_test.goreferences/docs_examples/compose/graph/state/state_graph.goreferences/docs_examples/compose/graph/tool_call_agent/tool_call_agent.goreferences/docs_examples/compose/graph/tool_call_once/tool_call_once.goreferences/docs_examples/compose/graph/two_model_chat/two_model_chat.goreferences/docs_examples/compose/workflow/1_simple/main.goreferences/docs_examples/compose/workflow/2_field_mapping/main.goreferences/docs_examples/compose/workflow/3_data_only/main.goreferences/docs_examples/compose/workflow/4_control_only_branch/main.goreferences/docs_examples/compose/workflow/5_static_values/main.goreferences/docs_examples/compose/workflow/6_stream_field_map/main.goreferences/docs_examples/devops/debug/chain/chain.goreferences/docs_examples/devops/debug/graph/graph.goreferences/docs_examples/devops/debug/graph/state_graph.goreferences/docs_examples/devops/debug/main.goreferences/docs_examples/devops/visualize/mermaid.goreferences/docs_examples/flow/agent/deer-go/biz/consts/consts.goreferences/docs_examples/flow/agent/deer-go/biz/eino/builder.goreferences/docs_examples/flow/agent/deer-go/biz/eino/coder.goreferences/docs_examples/flow/agent/deer-go/biz/eino/coordinator.goreferences/docs_examples/flow/agent/deer-go/biz/eino/human_feedback.goreferences/docs_examples/flow/agent/deer-go/biz/eino/investigator.goreferences/docs_examples/flow/agent/deer-go/biz/eino/planner.goreferences/docs_examples/flow/agent/deer-go/biz/eino/reporter.goreferences/docs_examples/flow/agent/deer-go/biz/eino/research_team.goreferences/docs_examples/flow/agent/deer-go/biz/eino/researcher.goreferences/docs_examples/flow/agent/deer-go/biz/handler/deer.goreferences/docs_examples/flow/agent/deer-go/biz/infra/llms.goreferences/docs_examples/flow/agent/deer-go/biz/infra/logger.goreferences/docs_examples/flow/agent/deer-go/biz/infra/mcp.goreferences/docs_examples/flow/agent/deer-go/biz/infra/template.goreferences/docs_examples/flow/agent/deer-go/biz/infra/tracing.goreferences/docs_examples/flow/agent/deer-go/biz/mcps/python/server.pyreferences/docs_examples/flow/agent/deer-go/biz/model/planner.goreferences/docs_examples/flow/agent/deer-go/biz/model/server_model.goreferences/docs_examples/flow/agent/deer-go/biz/model/state.goreferences/docs_examples/flow/agent/deer-go/biz/model/state_test.goreferences/docs_examples/flow/agent/deer-go/biz/util/util.goreferences/docs_examples/flow/agent/deer-go/conf/config.goreferences/docs_examples/flow/agent/deer-go/main.goreferences/docs_examples/flow/agent/deer-go/router.goreferences/docs_examples/flow/agent/deer-go/router_gen.goreferences/docs_examples/flow/agent/deer-go/run.shreferences/docs_examples/flow/agent/deer-go/script/bootstrap.shreferences/docs_examples/flow/agent/manus/log.goreferences/docs_examples/flow/agent/manus/manus.goreferences/docs_examples/flow/agent/manus/prompt.goreferences/docs_examples/flow/agent/multiagent/host/journal/answer_with_journal_specialist.goreferences/docs_examples/flow/agent/multiagent/host/journal/host.goreferences/docs_examples/flow/agent/multiagent/host/journal/main.goreferences/docs_examples/flow/agent/multiagent/host/journal/read_journal_specialist.goreferences/docs_examples/flow/agent/multiagent/host/journal/write_journal_specialist.goreferences/docs_examples/flow/agent/multiagent/plan_execute/compose.goreferences/docs_examples/flow/agent/multiagent/plan_execute/debug/debug_output.goreferences/docs_examples/flow/agent/multiagent/plan_execute/debug/mock_model.goreferences/docs_examples/flow/agent/multiagent/plan_execute/main.goreferences/docs_examples/flow/agent/multiagent/plan_execute/prompt/prompt.goreferences/docs_examples/flow/agent/multiagent/plan_execute/tools/data.goreferences/docs_examples/flow/agent/multiagent/plan_execute/tools/theme_park.goreferences/docs_examples/flow/agent/multiagent/plan_execute/tools/tools.goreferences/docs_examples/flow/agent/react/dynamic_option_example/dynamic/model.goreferences/docs_examples/flow/agent/react/dynamic_option_example/dynamic/state.goreferences/docs_examples/flow/agent/react/dynamic_option_example/main.goreferences/docs_examples/flow/agent/react/memory_example/main.goreferences/docs_examples/flow/agent/react/memory_example/memory/inmem.goreferences/docs_examples/flow/agent/react/memory_example/memory/redis.goreferences/docs_examples/flow/agent/react/memory_example/memory/store.goreferences/docs_examples/flow/agent/react/react.goreferences/docs_examples/flow/agent/react/tools/service.goreferences/docs_examples/flow/agent/react/tools/tools.goreferences/docs_examples/flow/agent/react/unknown_tool_handler_example/main.goreferences/docs_examples/flow/agent/react/unknown_tool_handler_example/tools/sum.goreferences/docs_examples/internal/gptr/ptr.goreferences/docs_examples/internal/logs/logger.goreferences/docs_examples/quickstart/chat/generate.goreferences/docs_examples/quickstart/chat/main.goreferences/docs_examples/quickstart/chat/ollama.goreferences/docs_examples/quickstart/chat/openai.goreferences/docs_examples/quickstart/chat/stream.goreferences/docs_examples/quickstart/chat/template.goreferences/docs_examples/quickstart/eino_assistant/Dockerfilereferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/agent.goreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/server.goreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/web/script.jsreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/main.goreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/task/server.goreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/task/web/script.jsreferences/docs_examples/quickstart/eino_assistant/cmd/einoagentcli/main.goreferences/docs_examples/quickstart/eino_assistant/cmd/knowledgeindexing/main.goreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/embedding.goreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/flow.goreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/lambda_func.goreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/model.goreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/orchestration.goreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/prompt.goreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/retriever.goreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/tools_node.goreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/types.goreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/embedding.goreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/indexer.goreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/loader.goreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/orchestration.goreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/transformer.goreferences/docs_examples/quickstart/eino_assistant/pkg/env/env.goreferences/docs_examples/quickstart/eino_assistant/pkg/mem/simple.goreferences/docs_examples/quickstart/eino_assistant/pkg/redis/redis.goreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/einotool.goreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/http_agent/client/main.goreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/http_agent/main.goreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/react_agent/main.goreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/simple_llm/main.goreferences/docs_examples/quickstart/eino_assistant/pkg/tool/gitclone/gitclone.goreferences/docs_examples/quickstart/eino_assistant/pkg/tool/open/open.goreferences/docs_examples/quickstart/eino_assistant/pkg/tool/task/storage.goreferences/docs_examples/quickstart/eino_assistant/pkg/tool/task/task.goreferences/docs_examples/quickstart/todoagent/main.go
Files
SKILL.mdcore20,233 bytesSKILL.mdcore20,233 bytesSKILL.mdcore20,233 bytesSKILL.mdcore20,233 bytesreferences/docs_examples/.golangci.yamlasset226 bytesreferences/docs_examples/.licenserc.yamlasset145 bytesreferences/docs_examples/CODE_OF_CONDUCT.mddoc5,222 bytesreferences/docs_examples/CONTRIBUTING.mddoc3,058 bytesreferences/docs_examples/COOKBOOK.mddoc16,194 bytesreferences/docs_examples/LICENSE-APACHEasset10,174 bytesreferences/docs_examples/README.mddoc5,107 bytesreferences/docs_examples/README.zh_CN.mddoc4,938 bytesreferences/docs_examples/_typos.tomlasset267 bytesreferences/docs_examples/adk/.example.envasset179 bytesreferences/docs_examples/adk/README.mddoc1,034 bytesreferences/docs_examples/adk/common/model/chat_model.goruns2,905 bytesreferences/docs_examples/adk/common/prints/util.goruns3,645 bytesreferences/docs_examples/adk/common/store/store.goruns1,085 bytesreferences/docs_examples/adk/common/tool/approval_wrapper.goruns2,498 bytesreferences/docs_examples/adk/common/tool/follow_up_tool.goruns2,522 bytesreferences/docs_examples/adk/common/tool/graphtool/README.mddoc5,732 bytesreferences/docs_examples/adk/common/tool/graphtool/examples/1_chain_summarize/README.mddoc2,613 bytesreferences/docs_examples/adk/common/tool/graphtool/examples/1_chain_summarize/main.goruns6,313 bytesreferences/docs_examples/adk/common/tool/graphtool/examples/2_graph_research/README.mddoc4,964 bytesreferences/docs_examples/adk/common/tool/graphtool/examples/2_graph_research/main.goruns7,159 bytesreferences/docs_examples/adk/common/tool/graphtool/examples/3_workflow_order/README.mddoc4,309 bytesreferences/docs_examples/adk/common/tool/graphtool/examples/3_workflow_order/main.goruns9,141 bytesreferences/docs_examples/adk/common/tool/graphtool/examples/4_nested_interrupt/README.mddoc6,339 bytesreferences/docs_examples/adk/common/tool/graphtool/examples/4_nested_interrupt/main.goruns8,908 bytesreferences/docs_examples/adk/common/tool/graphtool/graph_tool.goruns8,936 bytesreferences/docs_examples/adk/common/tool/review_edit_wrapper.goruns3,420 bytesreferences/docs_examples/adk/common/trace/coze_loop.goruns2,364 bytesreferences/docs_examples/adk/helloworld/helloworld.goruns2,007 bytesreferences/docs_examples/adk/human-in-the-loop/1_approval/README.mddoc4,188 bytesreferences/docs_examples/adk/human-in-the-loop/1_approval/README_ZH.mddoc3,892 bytesreferences/docs_examples/adk/human-in-the-loop/1_approval/agent.goruns2,037 bytesreferences/docs_examples/adk/human-in-the-loop/1_approval/main.goruns4,333 bytesreferences/docs_examples/adk/human-in-the-loop/2_review-and-edit/README.mddoc6,899 bytesreferences/docs_examples/adk/human-in-the-loop/2_review-and-edit/README_ZH.mddoc6,042 bytesreferences/docs_examples/adk/human-in-the-loop/2_review-and-edit/agent.goruns1,683 bytesreferences/docs_examples/adk/human-in-the-loop/2_review-and-edit/main.goruns2,663 bytesreferences/docs_examples/adk/human-in-the-loop/2_review-and-edit/tool.goruns1,219 bytesreferences/docs_examples/adk/human-in-the-loop/3_feedback-loop/README.mddoc6,891 bytesreferences/docs_examples/adk/human-in-the-loop/3_feedback-loop/README_ZH.mddoc6,071 bytesreferences/docs_examples/adk/human-in-the-loop/3_feedback-loop/main.goruns2,296 bytesreferences/docs_examples/adk/human-in-the-loop/3_feedback-loop/reviewer_agent.goruns3,318 bytesreferences/docs_examples/adk/human-in-the-loop/3_feedback-loop/writer_agent.goruns1,720 bytesreferences/docs_examples/adk/human-in-the-loop/4_follow-up/README.mddoc9,988 bytesreferences/docs_examples/adk/human-in-the-loop/4_follow-up/README_ZH.mddoc8,955 bytesreferences/docs_examples/adk/human-in-the-loop/4_follow-up/follow_up_agent.goruns2,669 bytesreferences/docs_examples/adk/human-in-the-loop/4_follow-up/main.goruns2,329 bytesreferences/docs_examples/adk/human-in-the-loop/4_follow-up/trip_planner_agent.goruns1,626 bytesreferences/docs_examples/adk/human-in-the-loop/5_supervisor/README.mddoc4,928 bytesreferences/docs_examples/adk/human-in-the-loop/5_supervisor/README_ZH.mddoc4,573 bytesreferences/docs_examples/adk/human-in-the-loop/5_supervisor/agent.goruns7,502 bytesreferences/docs_examples/adk/human-in-the-loop/5_supervisor/main.goruns3,460 bytesreferences/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/README.mddoc5,752 bytesreferences/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/README_ZH.mddoc5,512 bytesreferences/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/agent.goruns4,968 bytesreferences/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/main.goruns3,940 bytesreferences/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/tools.goruns10,839 bytesreferences/docs_examples/adk/human-in-the-loop/7_deep-agents/README.mddoc6,141 bytesreferences/docs_examples/adk/human-in-the-loop/7_deep-agents/README_ZH.mddoc5,613 bytesreferences/docs_examples/adk/human-in-the-loop/7_deep-agents/agent.goruns5,603 bytesreferences/docs_examples/adk/human-in-the-loop/7_deep-agents/main.goruns3,563 bytesreferences/docs_examples/adk/human-in-the-loop/7_deep-agents/tools.goruns6,307 bytesreferences/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/README.mddoc9,781 bytesreferences/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/README_ZH.mddoc9,438 bytesreferences/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/agent.goruns7,922 bytesreferences/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/main.goruns3,664 bytesreferences/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/tools.goruns8,422 bytesreferences/docs_examples/adk/intro/README.mddoc216 bytesreferences/docs_examples/adk/intro/agent_with_summarization/agent.goruns3,210 bytesreferences/docs_examples/adk/intro/agent_with_summarization/summarization/prompt.goruns3,331 bytesreferences/docs_examples/adk/intro/agent_with_summarization/summarization/summary.goruns10,960 bytesreferences/docs_examples/adk/intro/agent_with_summarization/tools.goruns2,153 bytesreferences/docs_examples/adk/intro/chatmodel/chatmodel.goruns1,818 bytesreferences/docs_examples/adk/intro/chatmodel/subagents/agent.goruns1,527 bytesreferences/docs_examples/adk/intro/chatmodel/subagents/ask_for_clarification.goruns1,936 bytesreferences/docs_examples/adk/intro/chatmodel/subagents/booksearch.goruns1,640 bytesreferences/docs_examples/adk/intro/custom/myagent.goruns1,585 bytesreferences/docs_examples/adk/intro/http-sse-service/README.mddoc9,671 bytesreferences/docs_examples/adk/intro/http-sse-service/go.modasset2,837 bytesreferences/docs_examples/adk/intro/http-sse-service/go.sumasset93,795 bytesreferences/docs_examples/adk/intro/http-sse-service/main.goruns7,481 bytesreferences/docs_examples/adk/intro/session/session_values.goruns2,495 bytesreferences/docs_examples/adk/intro/transfer/subagents/chatmodel.goruns2,932 bytesreferences/docs_examples/adk/intro/transfer/transfer.goruns1,782 bytesreferences/docs_examples/adk/intro/workflow/loop/loop_for_reflection.goruns1,991 bytesreferences/docs_examples/adk/intro/workflow/loop/subagents/chatmodel.goruns2,866 bytesreferences/docs_examples/adk/intro/workflow/parallel/parallel.goruns1,994 bytesreferences/docs_examples/adk/intro/workflow/parallel/subagents/chatmodel.goruns3,962 bytesreferences/docs_examples/adk/intro/workflow/sequential/sequential.goruns1,914 bytesreferences/docs_examples/adk/intro/workflow/sequential/subagents/chatmodel.goruns1,915 bytesreferences/docs_examples/adk/multiagent/deep/README.mddoc3,879 bytesreferences/docs_examples/adk/multiagent/deep/agents/code_agent.goruns4,255 bytesreferences/docs_examples/adk/multiagent/deep/agents/web_search.goruns1,541 bytesreferences/docs_examples/adk/multiagent/deep/generic/file_preview.goruns5,083 bytesreferences/docs_examples/adk/multiagent/deep/generic/full_plan.goruns2,374 bytesreferences/docs_examples/adk/multiagent/deep/generic/plan.goruns2,311 bytesreferences/docs_examples/adk/multiagent/deep/generic/submit_result.goruns1,915 bytesreferences/docs_examples/adk/multiagent/deep/main.goruns6,007 bytesreferences/docs_examples/adk/multiagent/deep/operator.goruns2,295 bytesreferences/docs_examples/adk/multiagent/deep/params/consts.goruns854 bytesreferences/docs_examples/adk/multiagent/deep/params/params.goruns2,015 bytesreferences/docs_examples/adk/multiagent/deep/playground/input/.gitkeepasset0 bytesreferences/docs_examples/adk/multiagent/deep/playground/test_data/questions.csvasset3,691 bytesreferences/docs_examples/adk/multiagent/deep/playground/test_data/推荐小说.txtdoc17,198 bytesreferences/docs_examples/adk/multiagent/deep/playground/test_data/模拟出题.csvasset6,986 bytesreferences/docs_examples/adk/multiagent/deep/tools/bash.goruns2,666 bytesreferences/docs_examples/adk/multiagent/deep/tools/edit.goruns2,625 bytesreferences/docs_examples/adk/multiagent/deep/tools/option.goruns739 bytesreferences/docs_examples/adk/multiagent/deep/tools/python_runner.goruns4,214 bytesreferences/docs_examples/adk/multiagent/deep/tools/read.goruns3,243 bytesreferences/docs_examples/adk/multiagent/deep/tools/read_image.goruns3,128 bytesreferences/docs_examples/adk/multiagent/deep/tools/submit_result.goruns4,229 bytesreferences/docs_examples/adk/multiagent/deep/tools/tree.goruns2,180 bytesreferences/docs_examples/adk/multiagent/deep/tools/wrap.goruns5,275 bytesreferences/docs_examples/adk/multiagent/deep/utils/model.goruns3,547 bytesreferences/docs_examples/adk/multiagent/deep/utils/utils.goruns2,915 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/README.mddoc3,975 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/executor/code_agent.goruns4,314 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/executor/executor.goruns3,193 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/executor/web_search.goruns1,562 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/planner/planner.goruns5,078 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/replanner/replanner.goruns5,196 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/report/report_agent.goruns5,793 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/agents/wrap_plan.goruns3,588 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/generic/file_preview.goruns5,083 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/generic/full_plan.goruns2,374 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/generic/plan.goruns2,311 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/generic/submit_result.goruns1,915 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/main.goruns6,239 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/operator.goruns2,314 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/params/consts.goruns854 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/params/params.goruns2,015 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/playground/input/.gitkeepasset0 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/playground/test_data/questions.csvasset3,691 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/playground/test_data/推荐小说.txtdoc17,198 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/playground/test_data/模拟出题.csvasset6,986 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/bash.goruns2,685 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/edit.goruns2,625 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/option.goruns739 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/python_runner.goruns4,252 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/read.goruns3,262 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/read_image.goruns3,128 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/submit_result.goruns4,286 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/tree.goruns2,199 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/tools/wrap.goruns5,294 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/utils/model.goruns3,477 bytesreferences/docs_examples/adk/multiagent/integration-excel-agent/utils/utils.goruns2,915 bytesreferences/docs_examples/adk/multiagent/integration-project-manager/agent.goruns4,145 bytesreferences/docs_examples/adk/multiagent/integration-project-manager/agents/coder.goruns4,397 bytesreferences/docs_examples/adk/multiagent/integration-project-manager/agents/project_manager.goruns2,240 bytesreferences/docs_examples/adk/multiagent/integration-project-manager/agents/researcher.goruns4,190 bytesreferences/docs_examples/adk/multiagent/integration-project-manager/agents/reviewer.goruns3,318 bytesreferences/docs_examples/adk/multiagent/layered-supervisor/agent.goruns8,613 bytesreferences/docs_examples/adk/multiagent/layered-supervisor/layered_supervisor.goruns1,722 bytesreferences/docs_examples/adk/multiagent/plan-execute-replan/agent/agent.goruns3,500 bytesreferences/docs_examples/adk/multiagent/plan-execute-replan/plan-execute-replan.goruns2,304 bytesreferences/docs_examples/adk/multiagent/plan-execute-replan/tools/ask_for_clarification.goruns1,681 bytesreferences/docs_examples/adk/multiagent/plan-execute-replan/tools/travel_tools.goruns12,866 bytesreferences/docs_examples/adk/multiagent/supervisor/agent.goruns5,187 bytesreferences/docs_examples/adk/multiagent/supervisor/supervisor.goruns1,838 bytesreferences/docs_examples/components/document/parser/customparser/custom_parser.goruns2,014 bytesreferences/docs_examples/components/document/parser/customparser/parse.goruns1,159 bytesreferences/docs_examples/components/document/parser/extparser/ext_parser.goruns2,220 bytesreferences/docs_examples/components/document/parser/extparser/testdata/test.htmlasset365 bytesreferences/docs_examples/components/document/parser/textparser/text_parser.goruns1,046 bytesreferences/docs_examples/components/lambda/lambda.goruns3,943 bytesreferences/docs_examples/components/model/abtest/ab_router.goruns4,896 bytesreferences/docs_examples/components/model/abtest/example/main.goruns2,808 bytesreferences/docs_examples/components/model/httptransport/curlrt.goruns9,610 bytesreferences/docs_examples/components/model/httptransport/example/invoke/main.goruns1,815 bytesreferences/docs_examples/components/model/httptransport/example/stream/main.goruns2,059 bytesreferences/docs_examples/components/prompt/chat_prompt/chat_prompt.goruns1,828 bytesreferences/docs_examples/components/retriever/multiquery/main.goruns3,599 bytesreferences/docs_examples/components/retriever/router/main.goruns2,519 bytesreferences/docs_examples/components/tool/jsonschema/main.goruns1,627 bytesreferences/docs_examples/components/tool/jsonschema/readme.mddoc315 bytesreferences/docs_examples/components/tool/mcptool/callresulthandler/main.goruns4,700 bytesreferences/docs_examples/components/tool/middlewares/errorremover/errorremover.goruns3,812 bytesreferences/docs_examples/components/tool/middlewares/errorremover/example/main.goruns3,048 bytesreferences/docs_examples/components/tool/middlewares/jsonfix/example/main.goruns2,363 bytesreferences/docs_examples/components/tool/middlewares/jsonfix/json_fix_middleware.goruns3,829 bytesreferences/docs_examples/components/tool/middlewares/jsonfix/json_fix_middleware_test.goruns5,554 bytesreferences/docs_examples/compose/batch/README.mddoc13,475 bytesreferences/docs_examples/compose/batch/batch/node.goruns8,232 bytesreferences/docs_examples/compose/batch/batch/options.goruns1,769 bytesreferences/docs_examples/compose/batch/batch/store.goruns2,656 bytesreferences/docs_examples/compose/batch/batch/types.goruns4,375 bytesreferences/docs_examples/compose/batch/main.goruns20,237 bytesreferences/docs_examples/compose/chain/main.goruns4,809 bytesreferences/docs_examples/compose/graph/async_node/README.mddoc1,132 bytesreferences/docs_examples/compose/graph/async_node/main.goruns3,073 bytesreferences/docs_examples/compose/graph/async_node/service.goruns2,231 bytesreferences/docs_examples/compose/graph/react_with_interrupt/README.mddoc1,050 bytesreferences/docs_examples/compose/graph/react_with_interrupt/main.goruns7,241 bytesreferences/docs_examples/compose/graph/react_with_interrupt/topology.pngasset78,176 bytesreferences/docs_examples/compose/graph/simple/graph.goruns3,620 bytesreferences/docs_examples/compose/graph/simple/type_match_test.goruns1,750 bytesreferences/docs_examples/compose/graph/state/state_graph.goruns5,339 bytesreferences/docs_examples/compose/graph/tool_call_agent/tool_call_agent.goruns6,901 bytesreferences/docs_examples/compose/graph/tool_call_once/tool_call_once.goruns5,457 bytesreferences/docs_examples/compose/graph/two_model_chat/two_model_chat.goruns5,341 bytesreferences/docs_examples/compose/workflow/1_simple/main.goruns2,893 bytesreferences/docs_examples/compose/workflow/2_field_mapping/main.goruns4,159 bytesreferences/docs_examples/compose/workflow/3_data_only/main.goruns2,831 bytesreferences/docs_examples/compose/workflow/4_control_only_branch/main.goruns3,617 bytesreferences/docs_examples/compose/workflow/5_static_values/main.goruns3,090 bytesreferences/docs_examples/compose/workflow/6_stream_field_map/main.goruns4,945 bytesreferences/docs_examples/devops/debug/chain/chain.goruns1,522 bytesreferences/docs_examples/devops/debug/graph/graph.goruns3,417 bytesreferences/docs_examples/devops/debug/graph/state_graph.goruns2,578 bytesreferences/docs_examples/devops/debug/main.goruns2,146 bytesreferences/docs_examples/devops/visualize/mermaid.goruns14,107 bytesreferences/docs_examples/flow/agent/deer-go/.gitignoreasset372 bytesreferences/docs_examples/flow/agent/deer-go/.hzasset100 bytesreferences/docs_examples/flow/agent/deer-go/README.mddoc1,017 bytesreferences/docs_examples/flow/agent/deer-go/biz/consts/consts.goruns1,191 bytesreferences/docs_examples/flow/agent/deer-go/biz/eino/builder.goruns4,455 bytesreferences/docs_examples/flow/agent/deer-go/biz/eino/coder.goruns4,893 bytesreferences/docs_examples/flow/agent/deer-go/biz/eino/coordinator.goruns3,586 bytesreferences/docs_examples/flow/agent/deer-go/biz/eino/human_feedback.goruns1,717 bytesreferences/docs_examples/flow/agent/deer-go/biz/eino/investigator.goruns2,832 bytesreferences/docs_examples/flow/agent/deer-go/biz/eino/planner.goruns3,691 bytesreferences/docs_examples/flow/agent/deer-go/biz/eino/reporter.goruns4,123 bytesreferences/docs_examples/flow/agent/deer-go/biz/eino/research_team.goruns2,021 bytesreferences/docs_examples/flow/agent/deer-go/biz/eino/researcher.goruns5,521 bytesreferences/docs_examples/flow/agent/deer-go/biz/handler/deer.goruns3,663 bytesreferences/docs_examples/flow/agent/deer-go/biz/infra/llms.goruns1,806 bytesreferences/docs_examples/flow/agent/deer-go/biz/infra/logger.goruns5,298 bytesreferences/docs_examples/flow/agent/deer-go/biz/infra/mcp.goruns4,936 bytesreferences/docs_examples/flow/agent/deer-go/biz/infra/template.goruns1,289 bytesreferences/docs_examples/flow/agent/deer-go/biz/infra/tracing.goruns4,415 bytesreferences/docs_examples/flow/agent/deer-go/biz/mcps/python/.python-versionasset5 bytesreferences/docs_examples/flow/agent/deer-go/biz/mcps/python/pyproject.tomlasset194 bytesreferences/docs_examples/flow/agent/deer-go/biz/mcps/python/server.pyruns9,106 bytesreferences/docs_examples/flow/agent/deer-go/biz/mcps/python/uv.lockasset26,858 bytesreferences/docs_examples/flow/agent/deer-go/biz/model/planner.goruns1,484 bytesreferences/docs_examples/flow/agent/deer-go/biz/model/server_model.goruns3,230 bytesreferences/docs_examples/flow/agent/deer-go/biz/model/state.goruns2,787 bytesreferences/docs_examples/flow/agent/deer-go/biz/model/state_test.goruns1,312 bytesreferences/docs_examples/flow/agent/deer-go/biz/prompts/coder.mddoc1,910 bytesreferences/docs_examples/flow/agent/deer-go/biz/prompts/coordinator.mddoc2,598 bytesreferences/docs_examples/flow/agent/deer-go/biz/prompts/planner.mddoc8,746 bytesreferences/docs_examples/flow/agent/deer-go/biz/prompts/podcast_script_writer.mddoc3,713 bytesreferences/docs_examples/flow/agent/deer-go/biz/prompts/ppt_composer.mddoc3,702 bytesreferences/docs_examples/flow/agent/deer-go/biz/prompts/reporter.mddoc4,884 bytesreferences/docs_examples/flow/agent/deer-go/biz/prompts/researcher.mddoc4,906 bytesreferences/docs_examples/flow/agent/deer-go/biz/util/util.goruns849 bytesreferences/docs_examples/flow/agent/deer-go/conf/config.goruns2,437 bytesreferences/docs_examples/flow/agent/deer-go/conf/deer-go.yaml.1asset583 bytesreferences/docs_examples/flow/agent/deer-go/go.modasset5,027 bytesreferences/docs_examples/flow/agent/deer-go/go.sumasset39,607 bytesreferences/docs_examples/flow/agent/deer-go/main.goruns4,253 bytesreferences/docs_examples/flow/agent/deer-go/router.goruns929 bytesreferences/docs_examples/flow/agent/deer-go/router_gen.goruns818 bytesreferences/docs_examples/flow/agent/deer-go/run.shruns229 bytesreferences/docs_examples/flow/agent/deer-go/script/bootstrap.shruns131 bytesreferences/docs_examples/flow/agent/manus/README.mddoc211 bytesreferences/docs_examples/flow/agent/manus/assets/img.pngasset34,869 bytesreferences/docs_examples/flow/agent/manus/go.modasset4,773 bytesreferences/docs_examples/flow/agent/manus/go.sumasset33,982 bytesreferences/docs_examples/flow/agent/manus/log.goruns3,607 bytesreferences/docs_examples/flow/agent/manus/manus.goruns14,095 bytesreferences/docs_examples/flow/agent/manus/prompt.goruns2,179 bytesreferences/docs_examples/flow/agent/multiagent/host/journal/answer_with_journal_specialist.goruns3,770 bytesreferences/docs_examples/flow/agent/multiagent/host/journal/host.goruns1,210 bytesreferences/docs_examples/flow/agent/multiagent/host/journal/main.goruns3,204 bytesreferences/docs_examples/flow/agent/multiagent/host/journal/read_journal_specialist.goruns2,307 bytesreferences/docs_examples/flow/agent/multiagent/host/journal/readme.mddoc276 bytesreferences/docs_examples/flow/agent/multiagent/host/journal/write_journal_specialist.goruns4,124 bytesreferences/docs_examples/flow/agent/multiagent/plan_execute/compose.goruns10,932 bytesreferences/docs_examples/flow/agent/multiagent/plan_execute/debug/debug_output.goruns1,694 bytesreferences/docs_examples/flow/agent/multiagent/plan_execute/debug/execution_example.txtdoc83,108 bytesreferences/docs_examples/flow/agent/multiagent/plan_execute/debug/mock_model.goruns3,068 bytesreferences/docs_examples/flow/agent/multiagent/plan_execute/main.goruns8,928 bytesreferences/docs_examples/flow/agent/multiagent/plan_execute/prompt/prompt.goruns9,788 bytesreferences/docs_examples/flow/agent/multiagent/plan_execute/tools/data.goruns19,460 bytesreferences/docs_examples/flow/agent/multiagent/plan_execute/tools/theme_park.goruns27,796 bytesreferences/docs_examples/flow/agent/multiagent/plan_execute/tools/tools.goruns4,413 bytesreferences/docs_examples/flow/agent/react/dynamic_option_example/README.mddoc7,343 bytesreferences/docs_examples/flow/agent/react/dynamic_option_example/dynamic/model.goruns5,030 bytesreferences/docs_examples/flow/agent/react/dynamic_option_example/dynamic/state.goruns2,192 bytesreferences/docs_examples/flow/agent/react/dynamic_option_example/main.goruns9,703 bytesreferences/docs_examples/flow/agent/react/memory_example/README.mddoc2,833 bytesreferences/docs_examples/flow/agent/react/memory_example/main.goruns5,472 bytesreferences/docs_examples/flow/agent/react/memory_example/memory/inmem.goruns2,162 bytesreferences/docs_examples/flow/agent/react/memory_example/memory/redis.goruns2,443 bytesreferences/docs_examples/flow/agent/react/memory_example/memory/store.goruns1,834 bytesreferences/docs_examples/flow/agent/react/react.goruns7,683 bytesreferences/docs_examples/flow/agent/react/readme.mddoc229 bytesreferences/docs_examples/flow/agent/react/tools/service.goruns7,811 bytesreferences/docs_examples/flow/agent/react/tools/tools.goruns4,163 bytesreferences/docs_examples/flow/agent/react/unknown_tool_handler_example/README.mddoc1,229 bytesreferences/docs_examples/flow/agent/react/unknown_tool_handler_example/main.goruns3,641 bytesreferences/docs_examples/flow/agent/react/unknown_tool_handler_example/tools/sum.goruns1,582 bytesreferences/docs_examples/go.modasset5,387 bytesreferences/docs_examples/go.sumasset106,875 bytesreferences/docs_examples/internal/gptr/ptr.goruns654 bytesreferences/docs_examples/internal/logs/logger.goruns1,746 bytesreferences/docs_examples/quickstart/chat/generate.goruns1,202 bytesreferences/docs_examples/quickstart/chat/main.goruns1,235 bytesreferences/docs_examples/quickstart/chat/ollama.goruns1,110 bytesreferences/docs_examples/quickstart/chat/openai.goruns1,187 bytesreferences/docs_examples/quickstart/chat/stream.goruns955 bytesreferences/docs_examples/quickstart/chat/template.goruns3,329 bytesreferences/docs_examples/quickstart/eino_assistant/.envasset923 bytesreferences/docs_examples/quickstart/eino_assistant/.gitignoreasset3,320 bytesreferences/docs_examples/quickstart/eino_assistant/Dockerfileruns399 bytesreferences/docs_examples/quickstart/eino_assistant/README.mddoc2,115 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/agent.goruns5,570 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/server.goruns5,357 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/web/index.htmlasset5,235 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/web/script.jsruns22,179 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/web/style.cssasset4,342 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/main.goruns3,309 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/task/server.goruns2,402 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/task/web/index.htmlasset10,177 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/task/web/script.jsruns13,521 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagent/task/web/style.cssasset1,314 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/einoagentcli/main.goruns7,383 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/knowledgeindexing/eino-docs/_index.mddoc3,440 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/knowledgeindexing/eino-docs/agent_llm_with_tools.mddoc10,843 bytesreferences/docs_examples/quickstart/eino_assistant/cmd/knowledgeindexing/main.goruns4,535 bytesreferences/docs_examples/quickstart/eino_assistant/docker-compose.ymlasset440 bytesreferences/docs_examples/quickstart/eino_assistant/eino/eino_agent.jsonasset50,040 bytesreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/embedding.goruns1,093 bytesreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/flow.goruns1,452 bytesreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/lambda_func.goruns1,213 bytesreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/model.goruns1,078 bytesreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/orchestration.goruns2,344 bytesreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/prompt.goruns2,470 bytesreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/retriever.goruns2,429 bytesreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/tools_node.goruns2,583 bytesreferences/docs_examples/quickstart/eino_assistant/eino/einoagent/types.goruns817 bytesreferences/docs_examples/quickstart/eino_assistant/eino/knowledge_indexing.jsonasset15,537 bytesreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/embedding.goruns1,158 bytesreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/indexer.goruns2,333 bytesreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/loader.goruns1,118 bytesreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/orchestration.goruns1,877 bytesreferences/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/transformer.goruns1,254 bytesreferences/docs_examples/quickstart/eino_assistant/go.modasset5,915 bytesreferences/docs_examples/quickstart/eino_assistant/go.sumasset47,545 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/env/env.goruns996 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/mem/simple.goruns4,416 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/redis/redis.goruns2,549 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/einotool.goruns7,211 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/http_agent/README.mddoc532 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/http_agent/client/main.goruns2,474 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/http_agent/main.goruns5,662 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/react_agent/main.goruns3,863 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/simple_llm/main.goruns3,536 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/gitclone/gitclone.goruns4,861 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/open/open.goruns2,875 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/task/README.mddoc2,275 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/task/storage.goruns6,528 bytesreferences/docs_examples/quickstart/eino_assistant/pkg/tool/task/task.goruns5,367 bytesreferences/docs_examples/quickstart/todoagent/main.goruns6,978 bytesreferences/overview.mddoc9,601 bytesreferences/readme.mddoc8,448 bytes
Read SKILL.md
# Eino 框架开发指南
Eino 是字节跳动开源的 Golang LLM/AI 应用开发框架,专注于 Agent 开发、工作流编排、工具调用。
## 环境要求
- **Go 版本**: 1.18+
- **代码规范**: golangci-lint
## 快速开始
### 安装
```bashView the complete source on GitHubgorm
When your agent uses it
GORM (Go ORM) development assistant. Use when the user needs to: (1) Create GORM models, (2) Define database schemas, (3) Perform CRUD operations, (4) Handle associations and relationships, (5) Write complex queries, (6) Implement migrations, (7) Use hooks and callbacks, (8) Query data, (9) Insert data, (10) Update data, (11) Delete data, (12) Create tables, (13) Modify tables, or any other GORM development tasks. Triggers on phrases like "创建 GORM 模型", "数据库查询", "GORM 关联", "GORM 开发", "查询数据", "写入数据", "更新数据", "删除数据", "创建表", "修改表", "操作数据库", "create GORM model", "database query", "GORM associations", "query data", "insert data", "update data", "delete data", "create table", "modify table".
What it loads into context
Frontmatter
216 tokensAlways available to the agent
SKILL.md
2,816 tokensWhen the skill is activated
Reference documents
72,842 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- ⚠<U+FE0F> 重要说明
- 快速开始
- 模型定义
- CRUD 操作
- 关联关系
- 高级查询
- Hooks
- 迁移
- 最佳实践
- 官方文档参考
Files
SKILL.mdcore9,784 bytesSKILL.mdcore9,784 bytesreferences/advanced_query.mddoc20,381 bytesreferences/associations.mddoc13,278 bytesreferences/belongs_to.mddoc3,300 bytesreferences/changelog.mddoc2,138 bytesreferences/composite_primary_key.mddoc600 bytesreferences/connecting_to_the_database.mddoc10,783 bytesreferences/constraints.mddoc1,218 bytesreferences/context.mddoc3,619 bytesreferences/conventions.mddoc4,697 bytesreferences/create.mddoc10,611 bytesreferences/data_types.mddoc6,683 bytesreferences/dbresolver.mddoc4,200 bytesreferences/delete.mddoc7,683 bytesreferences/error_handling.mddoc3,876 bytesreferences/generic_interface.mddoc991 bytesreferences/gorm_config.mddoc3,710 bytesreferences/has_many.mddoc2,805 bytesreferences/has_one.mddoc2,983 bytesreferences/hints.mddoc1,336 bytesreferences/hooks.mddoc3,218 bytesreferences/index.mddoc3,050 bytesreferences/indexes.mddoc3,765 bytesreferences/logger.mddoc1,936 bytesreferences/many_to_many.mddoc6,526 bytesreferences/method_chaining.mddoc9,240 bytesreferences/migration.mddoc8,898 bytesreferences/models.mddoc11,119 bytesreferences/performance.mddoc3,254 bytesreferences/polymorphism.mddoc1,604 bytesreferences/preload.mddoc7,704 bytesreferences/prometheus.mddoc1,864 bytesreferences/query.mddoc16,508 bytesreferences/scopes.mddoc3,142 bytesreferences/security.mddoc2,862 bytesreferences/serializer.mddoc5,207 bytesreferences/session.mddoc7,247 bytesreferences/settings.mddoc1,607 bytesreferences/sharding.mddoc2,506 bytesreferences/sql_builder.mddoc11,391 bytesreferences/the_generics_way.mddoc8,749 bytesreferences/transactions.mddoc3,330 bytesreferences/update.mddoc14,496 bytesreferences/v2_release_note.mddoc27,258 bytesreferences/write_driver.mddoc5,403 bytesreferences/write_plugins.mddoc5,768 bytes
Read SKILL.md
# GORM 开发指南
GORM 是 Go 语言最流行的 ORM 库,提供完整的数据库操作功能。
## ⚠<U+FE0F> 重要说明
**本 skill 专注于 GORM 的传统 API(Traditional API),不使用泛型方式。**
所有示例代码均使用传统的链式调用方式,确保与现有代码和 GORM 插件的完全兼容性。
### 传统 API vs 泛型 API
```go
// ✅ 使用传统 API(推荐)View the complete source on GitHubhyperf
When your agent uses it
Hyperf 3.1 framework development assistant. Use when the user needs to: (1) Create Hyperf controllers, (2) Create Hyperf models, (3) Create Hyperf commands, (4) Implement services, (5) Configure routes, (6) Use dependency injection, (7) Handle validation, or any other Hyperf 3.1 development tasks. Triggers on phrases like "创建 Hyperf 控制器", "生成模型", "创建命令", "Hyperf 开发".
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
730 tokensWhen the skill is activated
Reference documents
312,434 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 常用命令
- 快速示例
- 官方文档参考
Files
SKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesSKILL.mdcore2,721 bytesreferences/zh-cn/README.mddoc2,960 bytesreferences/zh-cn/amqp.mddoc15,705 bytesreferences/zh-cn/annotation.mddoc11,843 bytesreferences/zh-cn/aop.mddoc7,024 bytesreferences/zh-cn/async-queue.mddoc15,875 bytesreferences/zh-cn/awesome-components.mddoc12,320 bytesreferences/zh-cn/cache.mddoc8,122 bytesreferences/zh-cn/changelog/1.0.mddoc21,997 bytesreferences/zh-cn/changelog/1.1.mddoc47,683 bytesreferences/zh-cn/changelog/2.0.mddoc43,881 bytesreferences/zh-cn/changelog/2.1.mddoc23,388 bytesreferences/zh-cn/changelog/2.2.mddoc20,378 bytesreferences/zh-cn/changelog/3.0.mddoc40,953 bytesreferences/zh-cn/changelog/3.1.mddoc56,122 bytesreferences/zh-cn/circuit-breaker.mddoc2,773 bytesreferences/zh-cn/command.mddoc12,589 bytesreferences/zh-cn/communication.mddoc904 bytesreferences/zh-cn/component-guide/configprovider.mddoc6,112 bytesreferences/zh-cn/component-guide/create.mddoc913 bytesreferences/zh-cn/component-guide/intro.mddoc4,498 bytesreferences/zh-cn/config-center.mddoc10,335 bytesreferences/zh-cn/config.mddoc11,466 bytesreferences/zh-cn/constants.mddoc3,876 bytesreferences/zh-cn/consul.mddoc3,891 bytesreferences/zh-cn/contribute.mddoc2,107 bytesreferences/zh-cn/controller.mddoc2,685 bytesreferences/zh-cn/coroutine-server.mddoc2,073 bytesreferences/zh-cn/coroutine.mddoc21,372 bytesreferences/zh-cn/crontab.mddoc10,480 bytesreferences/zh-cn/dag.mddoc10,990 bytesreferences/zh-cn/db/db.mddoc4,269 bytesreferences/zh-cn/db/event.mddoc7,473 bytesreferences/zh-cn/db/gen.mddoc8,822 bytesreferences/zh-cn/db/migration.mddoc19,183 bytesreferences/zh-cn/db/model-cache.mddoc8,296 bytesreferences/zh-cn/db/model.mddoc17,986 bytesreferences/zh-cn/db/mutators.mddoc14,560 bytesreferences/zh-cn/db/paginator.mddoc1,473 bytesreferences/zh-cn/db/querybuilder.mddoc21,055 bytesreferences/zh-cn/db/quick-start.mddoc14,806 bytesreferences/zh-cn/db/relationship.mddoc14,022 bytesreferences/zh-cn/db/resource.mddoc23,285 bytesreferences/zh-cn/devtool.mddoc1,539 bytesreferences/zh-cn/di.mddoc15,039 bytesreferences/zh-cn/distributed-transaction.mddoc17,563 bytesreferences/zh-cn/donate.mddoc1,212 bytesreferences/zh-cn/eco/box.mddoc4,882 bytesreferences/zh-cn/elasticsearch.mddoc1,674 bytesreferences/zh-cn/enterprise-service.mddoc278 bytesreferences/zh-cn/etcd.mddoc410 bytesreferences/zh-cn/event.mddoc6,685 bytesreferences/zh-cn/exception-handler.mddoc5,858 bytesreferences/zh-cn/filesystem.mddoc9,904 bytesreferences/zh-cn/graphql.mddoc2,395 bytesreferences/zh-cn/grpc.mddoc4,968 bytesreferences/zh-cn/guzzle.mddoc5,448 bytesreferences/zh-cn/imgs/alipay.jpgasset154,741 bytesreferences/zh-cn/imgs/grafana.pngasset190,506 bytesreferences/zh-cn/imgs/hyperf-events.svgasset35,259 bytesreferences/zh-cn/imgs/snowflake.jpegasset30,201 bytesreferences/zh-cn/imgs/wechat.jpgasset101,232 bytesreferences/zh-cn/imgs/wechatpay.jpgasset189,075 bytesreferences/zh-cn/imgs/whoops.pngasset623,068 bytesreferences/zh-cn/jet.mddoc4,372 bytesreferences/zh-cn/json-rpc.mddoc17,265 bytesreferences/zh-cn/kafka.mddoc12,714 bytesreferences/zh-cn/lifecycle.mddoc1,517 bytesreferences/zh-cn/logger.mddoc13,274 bytesreferences/zh-cn/memory.mddoc0 bytesreferences/zh-cn/metric.mddoc13,779 bytesreferences/zh-cn/microservice.mddoc6,684 bytesreferences/zh-cn/middleware/middleware.jpgasset44,737 bytesreferences/zh-cn/middleware/middleware.mddoc15,317 bytesreferences/zh-cn/nacos.mddoc1,888 bytesreferences/zh-cn/nano.mddoc4,742 bytesreferences/zh-cn/nats.mddoc2,921 bytesreferences/zh-cn/nsq.mddoc9,678 bytesreferences/zh-cn/paginator.mddoc3,369 bytesreferences/zh-cn/phar.mddoc1,664 bytesreferences/zh-cn/pool.mddoc3,250 bytesreferences/zh-cn/process.mddoc4,868 bytesreferences/zh-cn/quick-start/important.mddoc2,350 bytesreferences/zh-cn/quick-start/install.mddoc3,983 bytesreferences/zh-cn/quick-start/overview.mddoc14,871 bytesreferences/zh-cn/quick-start/questions.mddoc6,590 bytesreferences/zh-cn/rate-limit.mddoc3,702 bytesreferences/zh-cn/reactive-x.mddoc10,868 bytesreferences/zh-cn/redis.mddoc9,135 bytesreferences/zh-cn/release-planning.mddoc1,420 bytesreferences/zh-cn/request.mddoc10,906 bytesreferences/zh-cn/response.mddoc7,157 bytesreferences/zh-cn/retry.mddoc10,846 bytesreferences/zh-cn/router.mddoc10,872 bytesreferences/zh-cn/rpc-multiplex.mddoc4,367 bytesreferences/zh-cn/rpn.mddoc2,631 bytesreferences/zh-cn/scout.mddoc10,690 bytesreferences/zh-cn/sdks/wechat.mddoc3,415 bytesreferences/zh-cn/service-register.mddoc6,438 bytesreferences/zh-cn/session.mddoc4,805 bytesreferences/zh-cn/signal.mddoc2,800 bytesreferences/zh-cn/snowflake.mddoc5,607 bytesreferences/zh-cn/socketio-server.mddoc13,314 bytesreferences/zh-cn/summary.mddoc5,282 bytesreferences/zh-cn/support.mddoc1,782 bytesreferences/zh-cn/swagger.mddoc7,803 bytesreferences/zh-cn/task.mddoc5,900 bytesreferences/zh-cn/tcp-server.mddoc2,929 bytesreferences/zh-cn/testing.mddoc12,106 bytesreferences/zh-cn/tracer.mddoc9,640 bytesreferences/zh-cn/translation.mddoc4,221 bytesreferences/zh-cn/tutorial/aliyun-logger.mddoc4,945 bytesreferences/zh-cn/tutorial/daocloud.mddoc1,977 bytesreferences/zh-cn/tutorial/docker-swarm.mddoc19,370 bytesreferences/zh-cn/tutorial/nginx.mddoc2,173 bytesreferences/zh-cn/tutorial/supervisor.mddoc2,341 bytesreferences/zh-cn/upgrade/1.1.mddoc6,220 bytesreferences/zh-cn/upgrade/2.0.mddoc11,652 bytesreferences/zh-cn/upgrade/2.1.mddoc4,191 bytesreferences/zh-cn/upgrade/2.2.mddoc6,791 bytesreferences/zh-cn/upgrade/3.0.mddoc3,748 bytesreferences/zh-cn/upgrade/3.1.mddoc3,660 bytesreferences/zh-cn/validation.mddoc37,827 bytesreferences/zh-cn/versions.mddoc1,721 bytesreferences/zh-cn/view-engine.mddoc24,948 bytesreferences/zh-cn/view.mddoc5,739 bytesreferences/zh-cn/watcher.mddoc2,428 bytesreferences/zh-cn/websocket-client.mddoc1,814 bytesreferences/zh-cn/websocket-server.mddoc8,471 bytes
Read SKILL.md
# Hyperf 3.1 开发指南
Hyperf 3.1 框架开发助手,专注于控制器、模型、命令行工具的快速开发。
## 常用命令
```bash
# 生成控制器
php bin/hyperf.php gen:controller UserController
# 生成模型
php bin/hyperf.php gen:model User
# 生成命令View the complete source on GitHublaravel12
When your agent uses it
Laravel 12 framework development assistant. Use when the user needs to: (1) Create Laravel controllers, (2) Create Laravel models, (3) Create Laravel commands, (4) Create middleware, (5) Create facades, (6) Implement services, (7) Configure routes, (8) Use dependency injection, (9) Handle validation, (10) Work with Eloquent ORM, or any other Laravel 12 development tasks. Triggers on phrases like "创建 Laravel 控制器", "生成模型", "创建命令", "创建中间件", "创建门面", "生成中间件", "生成门面", "Laravel 开发", "Laravel 12".
What it loads into context
Frontmatter
154 tokensAlways available to the agent
SKILL.md
3,604 tokensWhen the skill is activated
Reference documents
752,370 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 常用 Artisan 命令
- 快速示例
- 官方文档参考
- 开发最佳实践
Files
SKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesSKILL.mdcore15,024 bytesreferences/ai-sdk.mddoc57,387 bytesreferences/ai.mddoc7,382 bytesreferences/artisan.mddoc32,596 bytesreferences/authentication.mddoc46,527 bytesreferences/authorization.mddoc32,250 bytesreferences/billing.mddoc113,176 bytesreferences/blade.mddoc70,100 bytesreferences/boost.mddoc19,291 bytesreferences/broadcasting.mddoc68,769 bytesreferences/cache.mddoc30,832 bytesreferences/cashier-paddle.mddoc65,320 bytesreferences/collections.mddoc113,482 bytesreferences/concurrency.mddoc2,910 bytesreferences/configuration.mddoc19,951 bytesreferences/console-tests.mddoc6,755 bytesreferences/container.mddoc28,068 bytesreferences/context.mddoc14,695 bytesreferences/contracts.mddoc15,123 bytesreferences/contributions.mddoc8,628 bytesreferences/controllers.mddoc27,127 bytesreferences/csrf.mddoc6,285 bytesreferences/database-testing.mddoc8,319 bytesreferences/database.mddoc21,591 bytesreferences/deployment.mddoc10,623 bytesreferences/documentation.mddoc5,074 bytesreferences/dusk.mddoc78,344 bytesreferences/eloquent-collections.mddoc12,850 bytesreferences/eloquent-factories.mddoc22,254 bytesreferences/eloquent-mutators.mddoc35,870 bytesreferences/eloquent-relationships.mddoc96,726 bytesreferences/eloquent-resources.mddoc32,807 bytesreferences/eloquent-serialization.mddoc8,653 bytesreferences/eloquent.mddoc67,572 bytesreferences/encryption.mddoc4,004 bytesreferences/envoy.mddoc11,951 bytesreferences/errors.mddoc19,516 bytesreferences/events.mddoc41,490 bytesreferences/facades.mddoc19,593 bytesreferences/filesystem.mddoc33,589 bytesreferences/folio.mddoc10,776 bytesreferences/fortify.mddoc36,249 bytesreferences/frontend.mddoc11,088 bytesreferences/hashing.mddoc5,084 bytesreferences/helpers.mddoc100,310 bytesreferences/homestead.mddoc34,330 bytesreferences/horizon.mddoc29,835 bytesreferences/http-client.mddoc35,417 bytesreferences/http-tests.mddoc59,319 bytesreferences/installation.mddoc20,013 bytesreferences/license.mddoc1,074 bytesreferences/lifecycle.mddoc7,407 bytesreferences/localization.mddoc12,623 bytesreferences/logging.mddoc23,683 bytesreferences/mail.mddoc57,735 bytesreferences/mcp.mddoc84,627 bytesreferences/middleware.mddoc19,676 bytesreferences/migrations.mddoc58,666 bytesreferences/mix.mddoc1,478 bytesreferences/mocking.mddoc9,263 bytesreferences/mongodb.mddoc5,882 bytesreferences/notifications.mddoc74,909 bytesreferences/octane.mddoc29,485 bytesreferences/packages.mddoc18,461 bytesreferences/pagination.mddoc22,420 bytesreferences/passport.mddoc58,659 bytesreferences/passwords.mddoc14,889 bytesreferences/pennant.mddoc40,746 bytesreferences/pint.mddoc6,993 bytesreferences/precognition.mddoc24,299 bytesreferences/processes.mddoc23,521 bytesreferences/prompts.mddoc35,202 bytesreferences/providers.mddoc8,483 bytesreferences/pulse.mddoc33,410 bytesreferences/queries.mddoc58,046 bytesreferences/queues.mddoc122,483 bytesreferences/rate-limiting.mddoc4,782 bytesreferences/readme.mddoc464 bytesreferences/redis.mddoc17,870 bytesreferences/releases.mddoc4,562 bytesreferences/requests.mddoc31,738 bytesreferences/responses.mddoc29,917 bytesreferences/reverb.mddoc15,844 bytesreferences/routing.mddoc40,623 bytesreferences/sail.mddoc25,456 bytesreferences/sanctum.mddoc25,802 bytesreferences/scheduling.mddoc28,451 bytesreferences/scout.mddoc40,234 bytesreferences/search.mddoc17,710 bytesreferences/seeding.mddoc5,552 bytesreferences/session.mddoc18,115 bytesreferences/socialite.mddoc11,277 bytesreferences/starter-kits.mddoc27,146 bytesreferences/strings.mddoc100,973 bytesreferences/structure.mddoc13,401 bytesreferences/telescope.mddoc17,296 bytesreferences/testing.mddoc10,559 bytesreferences/upgrade.mddoc11,263 bytesreferences/urls.mddoc13,038 bytesreferences/valet.mddoc25,088 bytesreferences/validation.mddoc108,075 bytesreferences/verification.mddoc9,611 bytesreferences/views.mddoc11,219 bytesreferences/vite.mddoc37,661 bytes
Read SKILL.md
# Laravel 12 开发指南
Laravel 12 框架开发助手,专注于控制器、模型、命令行工具、服务层的快速开发。
## 常用 Artisan 命令
```bash
# 生成控制器
php artisan make:controller UserController
# 生成资源控制器(RESTful)
php artisan make:controller UserController --resource
# 生成 API 控制器View the complete source on GitHubwebman
When your agent uses it
Webman framework development assistant. Use when the user needs to: (1) Create Webman controllers, (2) Create Webman models, (3) Configure routes, (4) Create middleware, (5) Implement services, (6) Handle validation, or any other Webman development tasks. Triggers on phrases like "创建 Webman 控制器", "生成模型", "配置路由", "Webman 开发".
What it loads into context
Frontmatter
98 tokensAlways available to the agent
SKILL.md
1,760 tokensWhen the skill is activated
Reference documents
142,506 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 常用命令
- 快速示例
- 目录结构
- 内存泄漏注意事项
- 官方文档参考
Scripts executed separately
references/zh-cn/README.mdreferences/zh-cn/SUMMARY.mdreferences/zh-cn/aop.mdreferences/zh-cn/app/admin.mdreferences/zh-cn/app/app.mdreferences/zh-cn/app/config.mdreferences/zh-cn/app/controller.mdreferences/zh-cn/app/create.mdreferences/zh-cn/app/database.mdreferences/zh-cn/app/directory.mdreferences/zh-cn/app/install.mdreferences/zh-cn/app/log.mdreferences/zh-cn/app/market.mdreferences/zh-cn/app/pack.mdreferences/zh-cn/app/publish.mdreferences/zh-cn/app/redis.mdreferences/zh-cn/app/standard.mdreferences/zh-cn/app/static.mdreferences/zh-cn/app/view.mdreferences/zh-cn/attention.mdreferences/zh-cn/casbin.mdreferences/zh-cn/components/captcha.mdreferences/zh-cn/components/casbin.mdreferences/zh-cn/components/crontab.mdreferences/zh-cn/components/env.mdreferences/zh-cn/components/event.mdreferences/zh-cn/components/excel.mdreferences/zh-cn/components/generate_error_code.mdreferences/zh-cn/components/image.mdreferences/zh-cn/components/paginator.mdreferences/zh-cn/components/pay.mdreferences/zh-cn/components/translation.mdreferences/zh-cn/components/unitest.mdreferences/zh-cn/components/validation.mdreferences/zh-cn/components/wechat.mdreferences/zh-cn/config.mdreferences/zh-cn/controller.mdreferences/zh-cn/db/cache.mdreferences/zh-cn/db/config.mdreferences/zh-cn/db/medoo.mdreferences/zh-cn/db/migration.mdreferences/zh-cn/db/model.mdreferences/zh-cn/db/mongo.mdreferences/zh-cn/db/others.mdreferences/zh-cn/db/paginator.mdreferences/zh-cn/db/queries.mdreferences/zh-cn/db/redis.mdreferences/zh-cn/db/thinkcache.mdreferences/zh-cn/db/thinkorm.mdreferences/zh-cn/db/tutorial.mdreferences/zh-cn/di.mdreferences/zh-cn/directory.mdreferences/zh-cn/event.mdreferences/zh-cn/exception.mdreferences/zh-cn/help.mdreferences/zh-cn/install.mdreferences/zh-cn/log.mdreferences/zh-cn/middleware.mdreferences/zh-cn/multiapp.mdreferences/zh-cn/others/autoload.mdreferences/zh-cn/others/bin.mdreferences/zh-cn/others/bootstrap.mdreferences/zh-cn/others/custom-error-page.mdreferences/zh-cn/others/lifecycle.mdreferences/zh-cn/others/memory-leak.mdreferences/zh-cn/others/nginx-proxy.mdreferences/zh-cn/others/phar.mdreferences/zh-cn/others/process.mdreferences/zh-cn/others/scripts.mdreferences/zh-cn/others/security.mdreferences/zh-cn/others/task.mdreferences/zh-cn/others/upgrade.mdreferences/zh-cn/plugin.mdreferences/zh-cn/plugin/app.mdreferences/zh-cn/plugin/base.mdreferences/zh-cn/plugin/console.mdreferences/zh-cn/plugin/create.mdreferences/zh-cn/plugin/market.mdreferences/zh-cn/plugin/push.mdreferences/zh-cn/process.mdreferences/zh-cn/queue/redis.mdreferences/zh-cn/queue/stomp.mdreferences/zh-cn/request.mdreferences/zh-cn/require.mdreferences/zh-cn/response.mdreferences/zh-cn/route.mdreferences/zh-cn/session.mdreferences/zh-cn/static.mdreferences/zh-cn/thanks.mdreferences/zh-cn/tutorial.mdreferences/zh-cn/upgrade/1-4.mdreferences/zh-cn/upgrade/1-5.mdreferences/zh-cn/view.mdreferences/zh-cn/what-can-do.md
Files
SKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesSKILL.mdcore6,621 bytesreferences/en/README.mddoc3,042 bytesreferences/en/SUMMARY.mddoc3,879 bytesreferences/en/aop.mddoc2,357 bytesreferences/en/app/admin.mddoc725 bytesreferences/en/app/app.mddoc1,033 bytesreferences/en/app/config.mddoc1,696 bytesreferences/en/app/controller.mddoc964 bytesreferences/en/app/create.mddoc681 bytesreferences/en/app/database.mddoc6,372 bytesreferences/en/app/directory.mddoc1,898 bytesreferences/en/app/install.mddoc1,305 bytesreferences/en/app/log.mddoc404 bytesreferences/en/app/market.mddoc104 bytesreferences/en/app/pack.mddoc1,457 bytesreferences/en/app/publish.mddoc896 bytesreferences/en/app/redis.mddoc743 bytesreferences/en/app/route.mddoc679 bytesreferences/en/app/standard.mddoc2,999 bytesreferences/en/app/static.mddoc197 bytesreferences/en/app/view.mddoc258 bytesreferences/en/attention.mddoc2,086 bytesreferences/en/casbin.mddoc4,189 bytesreferences/en/components/captcha.mddoc2,605 bytesreferences/en/components/casbin.mddoc6,119 bytesreferences/en/components/crontab.mddoc2,892 bytesreferences/en/components/env.mddoc1,913 bytesreferences/en/components/event.mddoc4,015 bytesreferences/en/components/excel.mddoc860 bytesreferences/en/components/generate_error_code.mddoc3,916 bytesreferences/en/components/image.mddoc1,094 bytesreferences/en/components/paginator.mddoc2,144 bytesreferences/en/components/pay.mddoc7,626 bytesreferences/en/components/payment.mddoc7,951 bytesreferences/en/components/rate-limiter.mddoc5,974 bytesreferences/en/components/translation.mddoc5,552 bytesreferences/en/components/unitest.mddoc2,177 bytesreferences/en/components/validation.mddoc62,338 bytesreferences/en/components/wechat.mddoc3,226 bytesreferences/en/config.mddoc12,154 bytesreferences/en/controller.mddoc9,950 bytesreferences/en/coroutine/context.mddoc1,365 bytesreferences/en/coroutine/coroutine.mddoc12,118 bytesreferences/en/coroutine/fiber.mddoc5,781 bytesreferences/en/db/cache.mddoc3,929 bytesreferences/en/db/config.mddoc6,259 bytesreferences/en/db/medoo.mddoc3,098 bytesreferences/en/db/migration.mddoc2,933 bytesreferences/en/db/model.mddoc19,187 bytesreferences/en/db/mongo.mddoc2,534 bytesreferences/en/db/others.mddoc316 bytesreferences/en/db/paginator.mddoc4,704 bytesreferences/en/db/queries.mddoc12,689 bytesreferences/en/db/redis.mddoc5,317 bytesreferences/en/db/relationships.mddoc121 bytesreferences/en/db/thinkcache.mddoc1,622 bytesreferences/en/db/thinkorm.mddoc1,775 bytesreferences/en/db/tutorial.mddoc3,844 bytesreferences/en/di.mddoc10,829 bytesreferences/en/directory.mddoc2,684 bytesreferences/en/event.mddoc3,606 bytesreferences/en/exception.mddoc4,216 bytesreferences/en/help.mddoc72 bytesreferences/en/install.mddoc1,656 bytesreferences/en/log.mddoc4,360 bytesreferences/en/middleware.mddoc21,118 bytesreferences/en/multiapp.mddoc3,881 bytesreferences/en/others/autoload.mddoc2,116 bytesreferences/en/others/benchmarks.mddoc8,075 bytesreferences/en/others/bin.mddoc3,567 bytesreferences/en/others/bootstrap.mddoc3,836 bytesreferences/en/others/custom-error-page.mddoc2,706 bytesreferences/en/others/disable-function-check.mddoc1,284 bytesreferences/en/others/lifecycle.mddoc4,165 bytesreferences/en/others/memory-leak.mddoc6,044 bytesreferences/en/others/monitor.mddoc2,299 bytesreferences/en/others/nginx-proxy.mddoc1,934 bytesreferences/en/others/performance.mddoc1,684 bytesreferences/en/others/phar.mddoc2,250 bytesreferences/en/others/process.mddoc1,778 bytesreferences/en/others/scripts.mddoc691 bytesreferences/en/others/security.mddoc2,565 bytesreferences/en/others/task.mddoc4,349 bytesreferences/en/others/transaction.mddoc2,050 bytesreferences/en/others/upgrade.mddoc458 bytesreferences/en/plugin.mddoc801 bytesreferences/en/plugin/app.mddoc6,495 bytesreferences/en/plugin/base.mddoc545 bytesreferences/en/plugin/console.mddoc32,183 bytesreferences/en/plugin/create.mddoc6,621 bytesreferences/en/plugin/market.mddoc74 bytesreferences/en/plugin/push.mddoc8,649 bytesreferences/en/process.mddoc4,696 bytesreferences/en/queue/redis.mddoc11,740 bytesreferences/en/queue/stomp.mddoc2,492 bytesreferences/en/request.mddoc14,339 bytesreferences/en/require.mddoc852 bytesreferences/en/response.mddoc11,143 bytesreferences/en/route.mddoc17,502 bytesreferences/en/session.mddoc6,232 bytesreferences/en/static.mddoc2,222 bytesreferences/en/thanks.mddoc9,606 bytesreferences/en/tutorial.mddoc2,569 bytesreferences/en/upgrade/1-4.mddoc2,774 bytesreferences/en/upgrade/1-5.mddoc5,492 bytesreferences/en/upgrade/1-6.mddoc5,305 bytesreferences/en/upgrade/2-0.mddoc183 bytesreferences/en/upgrade/2-1.mddoc1,302 bytesreferences/en/upgrade/2-2.mddoc290 bytesreferences/en/view.mddoc10,652 bytesreferences/en/what-can-do.mddoc556 bytesreferences/zh-cn/README.mdruns2,779 bytesreferences/zh-cn/SUMMARY.mdruns3,543 bytesreferences/zh-cn/aop.mdruns2,241 bytesreferences/zh-cn/app/admin.mdruns553 bytesreferences/zh-cn/app/app.mdruns834 bytesreferences/zh-cn/app/config.mdruns1,290 bytesreferences/zh-cn/app/controller.mdruns862 bytesreferences/zh-cn/app/create.mdruns548 bytesreferences/zh-cn/app/database.mdruns6,072 bytesreferences/zh-cn/app/directory.mdruns1,782 bytesreferences/zh-cn/app/install.mdruns985 bytesreferences/zh-cn/app/log.mdruns328 bytesreferences/zh-cn/app/market.mdruns80 bytesreferences/zh-cn/app/pack.mdruns1,172 bytesreferences/zh-cn/app/publish.mdruns678 bytesreferences/zh-cn/app/redis.mdruns698 bytesreferences/zh-cn/app/route.mddoc596 bytesreferences/zh-cn/app/standard.mdruns2,390 bytesreferences/zh-cn/app/static.mdruns179 bytesreferences/zh-cn/app/view.mdruns181 bytesreferences/zh-cn/attention.mdruns2,274 bytesreferences/zh-cn/bt-install.mddoc2,060 bytesreferences/zh-cn/casbin.mdruns4,006 bytesreferences/zh-cn/components/captcha.mdruns2,517 bytesreferences/zh-cn/components/casbin.mdruns5,847 bytesreferences/zh-cn/components/crontab.mdruns2,941 bytesreferences/zh-cn/components/env.mdruns1,721 bytesreferences/zh-cn/components/event.mdruns3,710 bytesreferences/zh-cn/components/excel.mdruns853 bytesreferences/zh-cn/components/generate_error_code.mdruns3,650 bytesreferences/zh-cn/components/image.mdruns1,066 bytesreferences/zh-cn/components/paginator.mdruns2,029 bytesreferences/zh-cn/components/pay.mdruns7,555 bytesreferences/zh-cn/components/payment.mddoc6,962 bytesreferences/zh-cn/components/rate-limiter.mddoc5,712 bytesreferences/zh-cn/components/translation.mdruns5,254 bytesreferences/zh-cn/components/unitest.mdruns2,053 bytesreferences/zh-cn/components/validation.mdruns61,232 bytesreferences/zh-cn/components/wechat.mdruns3,144 bytesreferences/zh-cn/config.mdruns11,886 bytesreferences/zh-cn/controller.mdruns9,031 bytesreferences/zh-cn/coroutine/coroutine.mddoc12,510 bytesreferences/zh-cn/db/cache.mdruns3,794 bytesreferences/zh-cn/db/config.mdruns6,166 bytesreferences/zh-cn/db/medoo.mdruns3,051 bytesreferences/zh-cn/db/migration.mdruns2,601 bytesreferences/zh-cn/db/model.mdruns17,542 bytesreferences/zh-cn/db/mongo.mdruns2,521 bytesreferences/zh-cn/db/others.mdruns299 bytesreferences/zh-cn/db/paginator.mdruns4,234 bytesreferences/zh-cn/db/queries.mdruns11,997 bytesreferences/zh-cn/db/redis.mdruns5,673 bytesreferences/zh-cn/db/relationships.mddoc96 bytesreferences/zh-cn/db/thinkcache.mdruns1,703 bytesreferences/zh-cn/db/thinkorm.mdruns1,828 bytesreferences/zh-cn/db/tutorial.mdruns3,617 bytesreferences/zh-cn/di.mdruns10,264 bytesreferences/zh-cn/directory.mdruns2,365 bytesreferences/zh-cn/event.mdruns3,371 bytesreferences/zh-cn/exception.mdruns3,622 bytesreferences/zh-cn/help.mdruns134 bytesreferences/zh-cn/install.mdruns1,827 bytesreferences/zh-cn/log.mdruns4,185 bytesreferences/zh-cn/middleware.mdruns19,831 bytesreferences/zh-cn/multiapp.mdruns3,221 bytesreferences/zh-cn/others/autoload.mdruns2,045 bytesreferences/zh-cn/others/benchmarks.mddoc5,944 bytesreferences/zh-cn/others/bin.mdruns3,226 bytesreferences/zh-cn/others/bootstrap.mdruns3,277 bytesreferences/zh-cn/others/custom-error-page.mdruns2,515 bytesreferences/zh-cn/others/disable-function-check.mddoc1,156 bytesreferences/zh-cn/others/lifecycle.mdruns3,633 bytesreferences/zh-cn/others/memory-leak.mdruns5,423 bytesreferences/zh-cn/others/monitor.mddoc2,110 bytesreferences/zh-cn/others/nginx-proxy.mdruns1,705 bytesreferences/zh-cn/others/performance.mddoc1,192 bytesreferences/zh-cn/others/phar.mdruns1,978 bytesreferences/zh-cn/others/process.mdruns1,519 bytesreferences/zh-cn/others/scripts.mdruns630 bytesreferences/zh-cn/others/security.mdruns2,112 bytesreferences/zh-cn/others/task.mdruns3,922 bytesreferences/zh-cn/others/transaction.mddoc1,782 bytesreferences/zh-cn/others/upgrade.mdruns397 bytesreferences/zh-cn/plugin.mdruns560 bytesreferences/zh-cn/plugin/app.mdruns5,982 bytesreferences/zh-cn/plugin/base.mdruns441 bytesreferences/zh-cn/plugin/console.mdruns31,500 bytesreferences/zh-cn/plugin/create.mdruns7,086 bytesreferences/zh-cn/plugin/market.mdruns65 bytesreferences/zh-cn/plugin/push.mdruns7,605 bytesreferences/zh-cn/process.mdruns4,348 bytesreferences/zh-cn/queue/redis.mdruns10,541 bytesreferences/zh-cn/queue/stomp.mdruns2,247 bytesreferences/zh-cn/request.mdruns12,854 bytesreferences/zh-cn/require.mdruns598 bytesreferences/zh-cn/response.mdruns10,436 bytesreferences/zh-cn/route.mdruns16,273 bytesreferences/zh-cn/session.mdruns5,758 bytesreferences/zh-cn/static.mdruns1,945 bytesreferences/zh-cn/thanks.mdruns9,572 bytesreferences/zh-cn/tutorial.mdruns2,448 bytesreferences/zh-cn/upgrade/1-4.mdruns2,483 bytesreferences/zh-cn/upgrade/1-5.mdruns252 bytesreferences/zh-cn/upgrade/1-6.mddoc4,929 bytesreferences/zh-cn/upgrade/2-0.mddoc149 bytesreferences/zh-cn/upgrade/2-1.mddoc1,185 bytesreferences/zh-cn/upgrade/2-2.mddoc246 bytesreferences/zh-cn/view.mdruns9,224 bytesreferences/zh-cn/what-can-do.mdruns449 bytes
Read SKILL.md
# Webman 开发指南
Webman 高性能 PHP 框架开发助手,专注于控制器、模型、路由、中间件的快速开发。
## 常用命令
```bash
# 启动服务
php start.php start
# 调试模式启动(前台运行)
php start.php start -d
# 守护进程模式启动View the complete source on GitHubSkills included
- code-simplifier
- eino
- gorm
- hyperf
- laravel12
- webman
Repository facts
- License
- MIT
- Created
- Mar 5, 2026
- Last pushed
- Apr 21, 2026
- Forks
- 9
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 83 notes
skills/eino/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/eino/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/eino/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gorm/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/hyperf/references/zh-cn/dag.md:23Analysis incomplete: physical or joined line exceeds character limitskills/hyperf/references/zh-cn/imgs/hyperf-events.svg:3Analysis incomplete: physical or joined line exceeds character limitskills/hyperf/references/zh-cn/imgs/hyperf-events.svg:1Analysis incomplete: physical or joined line exceeds character limitskills/laravel12/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/laravel12/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 48 dangerous shell commandsin 17 files: hyperf/references/zh-cn/tutorial/docker-swarm.md:8 hyperf/references/zh-cn/eco/box.md:13 laravel12/references/horizon.md:536 and 14 more
- 5,715 network referencesin 643 files: hyperf/references/zh-cn/changelog/3.1.md:7 hyperf/references/zh-cn/changelog/1.1.md:7 hyperf/references/zh-cn/changelog/3.0.md:7 and 640 more
- 6 obfuscation signalsin 4 files: webman/references/en/components/pay.md:31 webman/references/zh-cn/components/pay.md:31 eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagentcli/main.go:78 and 1 more
- No instruction overrides
- 354 executable scriptsin 354 files: eino/references/docs_examples/adk/common/model/chat_model.go:1 eino/references/docs_examples/adk/common/prints/util.go:1 eino/references/docs_examples/adk/common/store/store.go:1 and 351 more
- 265 references to secretsin 112 files: laravel12/references/passport.md:283 laravel12/references/ai-sdk.md:75 laravel12/references/dusk.md:563 and 109 more
- No requests to vote in Hot
Show all 6,388 signals by file
skills/eino/SKILL.md
- Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 187
[Credential-related source omitted] - Access to secretsline 253
[Credential-related source omitted] - Access to secretsline 309
[Credential-related source omitted] - Access to secretsline 367
[Credential-related source omitted] - Access to secretsline 435
[Credential-related source omitted] - Access to secretsline 480
[Credential-related source omitted] - Network accessline 672
- **GitHub**: https://github.com/cloudwego/eino - Network accessline 673
- **文档**: https://www.cloudwego.io/docs/eino/ - Network accessline 674
- **示例**: https://github.com/cloudwego/eino-examples - Network accessline 675
- **扩展**: https://github.com/cloudwego/eino-ext - Network accessline 739
| 目录 | 名称 | 说明 | |------|------|------| | components/model | Model | A/B 测试路由、cURL 风格的 HTTP 传输日志 | - Network accessline 740
|------|------|------| | components/model | Model | A/B 测试路由、cURL 风格的 HTTP 传输日志 | | components/retriever | Retriever | 多查询检索、路由检索 | - Network accessline 741
| components/model | Model | A/B 测试路由、cURL 风格的 HTTP 传输日志 | - Network accessline 769
- **官方示例**: [references/docs_examples/](references/docs_examples/) - 官方示例代码库 - **示例说明**: [references/docs_examples/COOKBOOK.md](references/docs_examples/COOKBOOK.md) - 每个示例的详细说明 - **官方文档**: https://www.cloudwego.io/docs/eino/ - 在线文档 - Network accessline 770
- **示例说明**: [references/docs_examples/COOKBOOK.md](references/docs_examples/COOKBOOK.md) - 每个示例的详细说明 - **官方文档**: https://www.cloudwego.io/docs/eino/ - 在线文档 - **扩展组件**: https://github.com/cloudwego/eino-ext - 组件实现库 - Network accessline 771
- **官方文档**: https://www.cloudwego.io/docs/eino/ - 在线文档 - Network accessline 772
- **扩展组件**: https://github.com/cloudwego/eino-ext - 组件实现库
skills/eino/references/docs_examples/CODE_OF_CONDUCT.md
- Network accessline 117
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. - Network accessline 119
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. - Network accessline 121
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). - Network accessline 122
enforcement ladder](https://github.com/mozilla/diversity). - Network accessline 124
[homepage]: https://www.contributor-covenant.org - Network accessline 126
For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at - Network accessline 127
https://www.contributor-covenant.org/faq. Translations are available at - Network accessline 128
https://www.contributor-covenant.org/translations.
skills/eino/references/docs_examples/CONTRIBUTING.md
- Network accessline 3
## Your First Pull Request We use GitHub for our codebase. You can start by reading [How To Pull Request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests). - Network accessline 4
We use GitHub for our codebase. You can start by reading [How To Pull Request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests). - Network accessline 6
## Branch Organization We use [git-flow](https://nvie.com/posts/a-successful-git-branching-model/) as our branch organization, as known as [FDD](https://en.wikipedia.org/wiki/Feature-driven_development) - Network accessline 7
We use [git-flow](https://nvie.com/posts/a-successful-git-branching-model/) as our branch organization, as known as [FDD](https://en.wikipedia.org/wiki/Feature-driven_development) - Network accessline 9
## Bugs ### 1. How to Find Known Issues We are using [Github Issues](https://github.com/cloudwego/eino-examples/issues) for our public bugs. We keep a close eye on this and try to make it clear when we have an internal fix in progress. Befo - Network accessline 11
We are using [Github Issues](https://github.com/cloudwego/eino-examples/issues) for our public bugs. We keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure y - Network accessline 14
Providing a reduced test code is a recommended way for reporting issues. Then can place in: - Just in issues - [Golang Playground](https://play.golang.org/) - Network accessline 16
- [Golang Playground](https://play.golang.org/) - Network accessline 24
## Submit a Pull Request Before you submit your Pull Request (PR) consider the following guidelines: 1. Search [GitHub](https://github.com/cloudwego/eino-examples/pulls) for an open or closed PR that relates to your submission. You don't wa - Network accessline 25
Before you submit your Pull Request (PR) consider the following guidelines: 1. Search [GitHub](https://github.com/cloudwego/eino-examples/pulls) for an open or closed PR that relates to your submission. You don't want to duplicate existing - Network accessline 26
1. Search [GitHub](https://github.com/cloudwego/eino-examples/pulls) for an open or closed PR that relates to your submission. You don't want to duplicate existing efforts. - Network accessline 27
2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. Discussing the design upfront helps to ensure that we're ready to accept your work. 3. [Fork](https://docs.github.com/e - Network accessline 28
3. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the cloudwego {project_name} repo. - Network accessline 33
5. Create your patch, including appropriate test cases. 6. Follow our [Style Guides](#code-style-guides). 7. Commit your changes using a descriptive commit message that follows [AngularJS Git Commit Message Conventions](https://docs.google. - Network accessline 34
6. Follow our [Style Guides](#code-style-guides). 7. Commit your changes using a descriptive commit message that follows [AngularJS Git Commit Message Conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiD - Network accessline 35
7. Commit your changes using a descriptive commit message that follows [AngularJS Git Commit Message Conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit). - Network accessline 43
## Contribution Prerequisites - Our development environment keeps up with [Go Official](https://golang.org/project/). - Network accessline 44
- Our development environment keeps up with [Go Official](https://golang.org/project/). - Network accessline 45
- You need fully checking with lint tools before submit your pull request. [gofmt](https://golang.org/pkg/cmd/gofmt/) and [golangci-lint](https://github.com/golangci/golangci-lint) - Network accessline 46
- You are familiar with [GitHub](https://github.com) - Network accessline 47
- Maybe you need familiar with [Actions](https://github.com/features/actions)(our default workflow tool). - Network accessline 49
## Code Style Guides - [Effective Go](https://golang.org/doc/effective_go) - Network accessline 50
- [Effective Go](https://golang.org/doc/effective_go) - Network accessline 51
- [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments)
skills/eino/references/docs_examples/COOKBOOK.md
- Network accessline 5
**GitHub 仓库**: https://github.com/cloudwego/eino-examples - Network accessline 12
| 目录 | 名称 | 说明 | |------|------|------| | [adk/helloworld](https://github.com/cloudwego/eino-examples/tree/main/adk/helloworld) | Hello World Agent | 最简单的 Agent 示例,展示如何创建一个基础的对话 Agent | - Network accessline 14
| [adk/helloworld](https://github.com/cloudwego/eino-examples/tree/main/adk/helloworld) | Hello World Agent | 最简单的 Agent 示例,展示如何创建一个基础的对话 Agent | - Network accessline 17
| 目录 | 名称 | 说明 | |------|------|------| | [adk/intro/chatmodel](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/chatmodel) | ChatModel Agent | 展示如何使用 ChatModelAgent 并配合 Interrupt 机制 | - Network accessline 18
|------|------|------| | [adk/intro/chatmodel](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/chatmodel) | ChatModel Agent | 展示如何使用 ChatModelAgent 并配合 Interrupt 机制 | | [adk/intro/custom](https://github.com/cloudwego/eino-exa - Network accessline 19
| [adk/intro/chatmodel](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/chatmodel) | ChatModel Agent | 展示如何使用 ChatModelAgent 并配合 Interrupt 机制 | - Network accessline 20
| [adk/intro/custom](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/custom) | 自定义 Agent | 展示如何实现符合 ADK 定义的自定义 Agent | - Network accessline 21
| [adk/intro/workflow/loop](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/workflow/loop) | Loop Agent | 展示如何使用 LoopAgent 实现循环反思模式 | - Network accessline 22
| [adk/intro/workflow/parallel](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/workflow/parallel) | Parallel Agent | 展示如何使用 ParallelAgent 实现并行执行 | - Network accessline 23
| [adk/intro/workflow/sequential](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/workflow/sequential) | Sequential Agent | 展示如何使用 SequentialAgent 实现顺序执行 | - Network accessline 24
| [adk/intro/session](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/session) | Session 管理 | 展示如何通过 Session 在多个 Agent 之间传递数据和状态 | - Network accessline 25
| [adk/intro/transfer](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/transfer) | Agent 转移 | 展示 ChatModelAgent 的 Transfer 能力,实现 Agent 间的任务转移 | - Network accessline 26
| [adk/intro/agent_with_summarization](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/agent_with_summarization) | 带摘要的 Agent | 展示如何为 Agent 添加对话摘要功能 | - Network accessline 27
| [adk/intro/http-sse-service](https://github.com/cloudwego/eino-examples/tree/main/adk/intro/http-sse-service) | HTTP SSE 服务 | 展示如何将 ADK Runner 暴露为支持 Server-Sent Events 的 HTTP 服务 | - Network accessline 30
| 目录 | 名称 | 说明 | |------|------|------| | [adk/human-in-the-loop/1_approval](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/1_approval) | 审批模式 | 展示敏感操作前的人工审批机制,Agent 执行前需用户确认 | - Network accessline 31
|------|------|------| | [adk/human-in-the-loop/1_approval](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/1_approval) | 审批模式 | 展示敏感操作前的人工审批机制,Agent 执行前需用户确认 | | [adk/human-in-the-loop/2_review-and-edit](https:// - Network accessline 32
| [adk/human-in-the-loop/1_approval](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/1_approval) | 审批模式 | 展示敏感操作前的人工审批机制,Agent 执行前需用户确认 | - Network accessline 33
| [adk/human-in-the-loop/2_review-and-edit](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/2_review-and-edit) | 审核编辑模式 | 展示工具调用参数的人工审核和编辑,支持修改、批准或拒绝 | - Network accessline 34
| [adk/human-in-the-loop/3_feedback-loop](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/3_feedback-loop) | 反馈循环模式 | 多 Agent 协作,Writer 生成内容,Reviewer 收集人工反馈,支持迭代优化 | - Network accessline 35
| [adk/human-in-the-loop/4_follow-up](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/4_follow-up) | 追问模式 | 智能识别信息缺失,通过多轮追问收集用户需求,完成复杂任务规划 | - Network accessline 36
| [adk/human-in-the-loop/5_supervisor](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/5_supervisor) | Supervisor + 审批 | Supervisor 多 Agent 模式结合审批机制,敏感操作需人工确认 | - Network accessline 37
| [adk/human-in-the-loop/6_plan-execute-replan](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/6_plan-execute-replan) | 计划执行重规划 + 审核编辑 | Plan-Execute-Replan 模式结合参数审核编辑,支持预订参数修改 | - Network accessline 38
| [adk/human-in-the-loop/7_deep-agents](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/7_deep-agents) | Deep Agents + 追问 | Deep Agents 模式结合追问机制,在分析前主动收集用户偏好 | - Network accessline 39
| [adk/human-in-the-loop/8_supervisor-plan-execute](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop/8_supervisor-plan-execute) | 嵌套多 Agent + 审批 | Supervisor 嵌套 Plan-Execute-Replan 子 Agent,支持深层嵌套中断 | - Network accessline 42
| 目录 | 名称 | 说明 | |------|------|------| | [adk/multiagent/supervisor](https://github.com/cloudwego/eino-examples/tree/main/adk/multiagent/supervisor) | Supervisor Agent | 基础的 Supervisor 多 Agent 模式,协调多个子 Agent 完成任务 | - Network accessline 43
|------|------|------| | [adk/multiagent/supervisor](https://github.com/cloudwego/eino-examples/tree/main/adk/multiagent/supervisor) | Supervisor Agent | 基础的 Supervisor 多 Agent 模式,协调多个子 Agent 完成任务 | | [adk/multiagent/layered-supervisor](htt - Network accessline 44
| [adk/multiagent/supervisor](https://github.com/cloudwego/eino-examples/tree/main/adk/multiagent/supervisor) | Supervisor Agent | 基础的 Supervisor 多 Agent 模式,协调多个子 Agent 完成任务 | - Network accessline 45
| [adk/multiagent/layered-supervisor](https://github.com/cloudwego/eino-examples/tree/main/adk/multiagent/layered-supervisor) | 分层 Supervisor | 多层 Supervisor 嵌套,一个 Supervisor 作为另一个的子 Agent | - Network accessline 46
| [adk/multiagent/plan-execute-replan](https://github.com/cloudwego/eino-examples/tree/main/adk/multiagent/plan-execute-replan) | Plan-Execute-Replan | 计划-执行-重规划模式,支持动态调整执行计划 | - Network accessline 47
| [adk/multiagent/integration-project-manager](https://github.com/cloudwego/eino-examples/tree/main/adk/multiagent/integration-project-manager) | 项目管理器 | 使用 Supervisor 模式的项目管理示例,包含 Coder、Researcher、Reviewer | - Network accessline 48
| [adk/multiagent/deep](https://github.com/cloudwego/eino-examples/tree/main/adk/multiagent/deep) | Deep Agents (Excel Agent) | 智能 Excel 助手,分步骤理解和处理 Excel 文件,支持 Python 代码执行 | - Network accessline 49
| [adk/multiagent/integration-excel-agent](https://github.com/cloudwego/eino-examples/tree/main/adk/multiagent/integration-excel-agent) | Excel Agent (ADK 集成版) | ADK 集成版 Excel Agent,包含 Planner、Executor、Replanner、Reporter | - Network accessline 52
| 目录 | 名称 | 说明 | |------|------|------| | [adk/common/tool/graphtool](https://github.com/cloudwego/eino-examples/tree/main/adk/common/tool/graphtool) | GraphTool 包 | 将 Graph/Chain/Workflow 封装为 Agent 工具的工具包 | - Network accessline 53
|------|------|------| | [adk/common/tool/graphtool](https://github.com/cloudwego/eino-examples/tree/main/adk/common/tool/graphtool) | GraphTool 包 | 将 Graph/Chain/Workflow 封装为 Agent 工具的工具包 | | [adk/common/tool/graphtool/examples/1_chain_sum - Network accessline 54
| [adk/common/tool/graphtool](https://github.com/cloudwego/eino-examples/tree/main/adk/common/tool/graphtool) | GraphTool 包 | 将 Graph/Chain/Workflow 封装为 Agent 工具的工具包 | - Network accessline 55
| [adk/common/tool/graphtool/examples/1_chain_summarize](https://github.com/cloudwego/eino-examples/tree/main/adk/common/tool/graphtool/examples/1_chain_summarize) | Chain 文档摘要 | 使用 compose.Chain 实现文档摘要工具 | - Network accessline 56
| [adk/common/tool/graphtool/examples/2_graph_research](https://github.com/cloudwego/eino-examples/tree/main/adk/common/tool/graphtool/examples/2_graph_research) | Graph 多源研究 | 使用 compose.Graph 实现并行多源搜索和流式输出 | - Network accessline 57
| [adk/common/tool/graphtool/examples/3_workflow_order](https://github.com/cloudwego/eino-examples/tree/main/adk/common/tool/graphtool/examples/3_workflow_order) | Workflow 订单处理 | 使用 compose.Workflow 实现订单处理,结合审批机制 | - Network accessline 58
| [adk/common/tool/graphtool/examples/4_nested_interrupt](https://github.com/cloudwego/eino-examples/tree/main/adk/common/tool/graphtool/examples/4_nested_interrupt) | 嵌套中断 | 展示外层审批和内层风控的双层中断机制 | - Network accessline 65
| 目录 | 名称 | 说明 | |------|------|------| | [compose/chain](https://github.com/cloudwego/eino-examples/tree/main/compose/chain) | Chain 基础示例 | 展示如何使用 compose.Chain 进行顺序编排,包含 Prompt + ChatModel | - Network accessline 67
| [compose/chain](https://github.com/cloudwego/eino-examples/tree/main/compose/chain) | Chain 基础示例 | 展示如何使用 compose.Chain 进行顺序编排,包含 Prompt + ChatModel | - Network accessline 70
| 目录 | 名称 | 说明 | |------|------|------| | [compose/graph/simple](https://github.com/cloudwego/eino-examples/tree/main/compose/graph/simple) | 简单 Graph | Graph 基础用法示例 | - Network accessline 71
|------|------|------| | [compose/graph/simple](https://github.com/cloudwego/eino-examples/tree/main/compose/graph/simple) | 简单 Graph | Graph 基础用法示例 | | [compose/graph/state](https://github.com/cloudwego/eino-examples/tree/main/compose/grap - Network accessline 72
| [compose/graph/simple](https://github.com/cloudwego/eino-examples/tree/main/compose/graph/simple) | 简单 Graph | Graph 基础用法示例 | - Network accessline 73
| [compose/graph/state](https://github.com/cloudwego/eino-examples/tree/main/compose/graph/state) | State Graph | 带状态的 Graph 示例 | - Network accessline 74
| [compose/graph/tool_call_agent](https://github.com/cloudwego/eino-examples/tree/main/compose/graph/tool_call_agent) | Tool Call Agent | 使用 Graph 构建工具调用 Agent | - Network accessline 75
| [compose/graph/tool_call_once](https://github.com/cloudwego/eino-examples/tree/main/compose/graph/tool_call_once) | 单次工具调用 | 展示单次工具调用的 Graph 实现 | - Network accessline 76
| [compose/graph/two_model_chat](https://github.com/cloudwego/eino-examples/tree/main/compose/graph/two_model_chat) | 双模型对话 | 两个模型相互对话的 Graph 示例 | - Network accessline 77
| [compose/graph/async_node](https://github.com/cloudwego/eino-examples/tree/main/compose/graph/async_node) | 异步节点 | 展示异步 Lambda 节点,包含报告生成和实时转录场景 | - Network accessline 78
| [compose/graph/react_with_interrupt](https://github.com/cloudwego/eino-examples/tree/main/compose/graph/react_with_interrupt) | ReAct + 中断 | 票务预订场景,展示 Interrupt 和 Checkpoint 实践 | - Network accessline 81
| 目录 | 名称 | 说明 | |------|------|------| | [compose/workflow/1_simple](https://github.com/cloudwego/eino-examples/tree/main/compose/workflow/1_simple) | 简单 Workflow | 最简单的 Workflow 示例,等价于 Graph | - Network accessline 82
|------|------|------| | [compose/workflow/1_simple](https://github.com/cloudwego/eino-examples/tree/main/compose/workflow/1_simple) | 简单 Workflow | 最简单的 Workflow 示例,等价于 Graph | | [compose/workflow/2_field_mapping](https://github.com/cloudw - Network accessline 83
| [compose/workflow/1_simple](https://github.com/cloudwego/eino-examples/tree/main/compose/workflow/1_simple) | 简单 Workflow | 最简单的 Workflow 示例,等价于 Graph | - Network accessline 84
| [compose/workflow/2_field_mapping](https://github.com/cloudwego/eino-examples/tree/main/compose/workflow/2_field_mapping) | 字段映射 | 展示 Workflow 的字段映射功能 | - Network accessline 85
| [compose/workflow/3_data_only](https://github.com/cloudwego/eino-examples/tree/main/compose/workflow/3_data_only) | 纯数据流 | 仅数据流的 Workflow 示例 | - Network accessline 86
| [compose/workflow/4_control_only_branch](https://github.com/cloudwego/eino-examples/tree/main/compose/workflow/4_control_only_branch) | 控制流分支 | 仅控制流的分支示例 | - Network accessline 87
| [compose/workflow/5_static_values](https://github.com/cloudwego/eino-examples/tree/main/compose/workflow/5_static_values) | 静态值 | 展示如何在 Workflow 中使用静态值 | - Network accessline 88
| [compose/workflow/6_stream_field_map](https://github.com/cloudwego/eino-examples/tree/main/compose/workflow/6_stream_field_map) | 流式字段映射 | 流式场景下的字段映射 | - Network accessline 91
| 目录 | 名称 | 说明 | |------|------|------| | [compose/batch](https://github.com/cloudwego/eino-examples/tree/main/compose/batch) | BatchNode | 批量处理组件,支持并发控制、中断恢复,适用于文档批量审核等场景 | - Network accessline 93
| [compose/batch](https://github.com/cloudwego/eino-examples/tree/main/compose/batch) | BatchNode | 批量处理组件,支持并发控制、中断恢复,适用于文档批量审核等场景 | - Network accessline 100
| 目录 | 名称 | 说明 | |------|------|------| | [flow/agent/react](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/react) | ReAct Agent | ReAct Agent 基础示例,餐厅推荐场景 | - Network accessline 101
|------|------|------| | [flow/agent/react](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/react) | ReAct Agent | ReAct Agent 基础示例,餐厅推荐场景 | | [flow/agent/react/memory_example](https://github.com/cloudwego/eino-examples/tree - Network accessline 102
| [flow/agent/react](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/react) | ReAct Agent | ReAct Agent 基础示例,餐厅推荐场景 | - Network accessline 103
| [flow/agent/react/memory_example](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/react/memory_example) | 短期记忆 | ReAct Agent 的短期记忆实现,支持内存和 Redis 存储 | - Network accessline 104
| [flow/agent/react/dynamic_option_example](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/react/dynamic_option_example) | 动态选项 | 运行时动态修改 Model Option,控制思考模式和工具选择 | - Network accessline 105
| [flow/agent/react/unknown_tool_handler_example](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/react/unknown_tool_handler_example) | 未知工具处理 | 处理模型幻觉产生的未知工具调用,提高 Agent 鲁棒性 | - Network accessline 108
| 目录 | 名称 | 说明 | |------|------|------| | [flow/agent/multiagent/host/journal](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/multiagent/host/journal) | 日记助手 | Host Multi-Agent 示例,支持写日记、读日记、根据日记回答问题 | - Network accessline 109
|------|------|------| | [flow/agent/multiagent/host/journal](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/multiagent/host/journal) | 日记助手 | Host Multi-Agent 示例,支持写日记、读日记、根据日记回答问题 | | [flow/agent/multiagent/plan_execute]( - Network accessline 110
| [flow/agent/multiagent/host/journal](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/multiagent/host/journal) | 日记助手 | Host Multi-Agent 示例,支持写日记、读日记、根据日记回答问题 | - Network accessline 111
| [flow/agent/multiagent/plan_execute](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/multiagent/plan_execute) | Plan-Execute | 计划执行模式的 Multi-Agent 示例 | - Network accessline 114
| 目录 | 名称 | 说明 | |------|------|------| | [flow/agent/manus](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/manus) | Manus Agent | 基于 Eino 实现的 Manus Agent,参考 OpenManus 项目 | - Network accessline 115
|------|------|------| | [flow/agent/manus](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/manus) | Manus Agent | 基于 Eino 实现的 Manus Agent,参考 OpenManus 项目 | | [flow/agent/deer-go](https://github.com/cloudwego/eino-examples/t - Network accessline 116
| [flow/agent/manus](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/manus) | Manus Agent | 基于 Eino 实现的 Manus Agent,参考 OpenManus 项目 | - Network accessline 117
| [flow/agent/deer-go](https://github.com/cloudwego/eino-examples/tree/main/flow/agent/deer-go) | Deer-Go | 参考 deer-flow 的 Go 语言实现,支持研究团队协作的状态图流转 | - Network accessline 124
| 目录 | 名称 | 说明 | |------|------|------| | [components/model/abtest](https://github.com/cloudwego/eino-examples/tree/main/components/model/abtest) | A/B 测试路由 | 动态路由 ChatModel,支持 A/B 测试和模型切换 | - Network accessline 125
|------|------|------| | [components/model/abtest](https://github.com/cloudwego/eino-examples/tree/main/components/model/abtest) | A/B 测试路由 | 动态路由 ChatModel,支持 A/B 测试和模型切换 | | [components/model/httptransport](https://github.com/cloudwego/ei - Network accessline 126
| [components/model/abtest](https://github.com/cloudwego/eino-examples/tree/main/components/model/abtest) | A/B 测试路由 | 动态路由 ChatModel,支持 A/B 测试和模型切换 | - Network accessline 127
| [components/model/httptransport](https://github.com/cloudwego/eino-examples/tree/main/components/model/httptransport) | HTTP 传输日志 | cURL 风格的 HTTP 请求日志记录,支持流式响应和敏感信息脱敏 | - Network accessline 130
| 目录 | 名称 | 说明 | |------|------|------| | [components/retriever/multiquery](https://github.com/cloudwego/eino-examples/tree/main/components/retriever/multiquery) | 多查询检索 | 使用 LLM 生成多个查询变体,提高检索召回率 | - Network accessline 131
|------|------|------| | [components/retriever/multiquery](https://github.com/cloudwego/eino-examples/tree/main/components/retriever/multiquery) | 多查询检索 | 使用 LLM 生成多个查询变体,提高检索召回率 | | [components/retriever/router](https://github.com/cloudweg - Network accessline 132
| [components/retriever/multiquery](https://github.com/cloudwego/eino-examples/tree/main/components/retriever/multiquery) | 多查询检索 | 使用 LLM 生成多个查询变体,提高检索召回率 | - Network accessline 133
| [components/retriever/router](https://github.com/cloudwego/eino-examples/tree/main/components/retriever/router) | 路由检索 | 根据查询内容动态路由到不同的检索器 | - Network accessline 136
| 目录 | 名称 | 说明 | |------|------|------| | [components/tool/jsonschema](https://github.com/cloudwego/eino-examples/tree/main/components/tool/jsonschema) | JSON Schema 工具 | 展示如何使用 JSON Schema 定义工具参数 | - Network accessline 137
|------|------|------| | [components/tool/jsonschema](https://github.com/cloudwego/eino-examples/tree/main/components/tool/jsonschema) | JSON Schema 工具 | 展示如何使用 JSON Schema 定义工具参数 | | [components/tool/mcptool/callresulthandler](https://gith - Network accessline 138
| [components/tool/jsonschema](https://github.com/cloudwego/eino-examples/tree/main/components/tool/jsonschema) | JSON Schema 工具 | 展示如何使用 JSON Schema 定义工具参数 | - Network accessline 139
| [components/tool/mcptool/callresulthandler](https://github.com/cloudwego/eino-examples/tree/main/components/tool/mcptool/callresulthandler) | MCP 工具结果处理 | 展示 MCP 工具调用结果的自定义处理 | - Network accessline 140
| [components/tool/middlewares/errorremover](https://github.com/cloudwego/eino-examples/tree/main/components/tool/middlewares/errorremover) | 错误移除中间件 | 工具调用错误处理中间件,将错误转换为友好提示 | - Network accessline 141
| [components/tool/middlewares/jsonfix](https://github.com/cloudwego/eino-examples/tree/main/components/tool/middlewares/jsonfix) | JSON 修复中间件 | 修复 LLM 生成的格式错误 JSON 参数 | - Network accessline 144
| 目录 | 名称 | 说明 | |------|------|------| | [components/document/parser/customparser](https://github.com/cloudwego/eino-examples/tree/main/components/document/parser/customparser) | 自定义解析器 | 展示如何实现自定义文档解析器 | - Network accessline 145
|------|------|------| | [components/document/parser/customparser](https://github.com/cloudwego/eino-examples/tree/main/components/document/parser/customparser) | 自定义解析器 | 展示如何实现自定义文档解析器 | | [components/document/parser/extparser](https://gi - Network accessline 146
| [components/document/parser/customparser](https://github.com/cloudwego/eino-examples/tree/main/components/document/parser/customparser) | 自定义解析器 | 展示如何实现自定义文档解析器 | - Network accessline 147
| [components/document/parser/extparser](https://github.com/cloudwego/eino-examples/tree/main/components/document/parser/extparser) | 扩展解析器 | 使用扩展解析器处理 HTML 等格式 | - Network accessline 148
| [components/document/parser/textparser](https://github.com/cloudwego/eino-examples/tree/main/components/document/parser/textparser) | 文本解析器 | 基础文本文档解析器示例 | - Network accessline 151
| 目录 | 名称 | 说明 | |------|------|------| | [components/prompt/chat_prompt](https://github.com/cloudwego/eino-examples/tree/main/components/prompt/chat_prompt) | Chat Prompt | 展示如何使用 Chat Prompt 模板 | - Network accessline 153
| [components/prompt/chat_prompt](https://github.com/cloudwego/eino-examples/tree/main/components/prompt/chat_prompt) | Chat Prompt | 展示如何使用 Chat Prompt 模板 | - Network accessline 156
| 目录 | 名称 | 说明 | |------|------|------| | [components/lambda](https://github.com/cloudwego/eino-examples/tree/main/components/lambda) | Lambda 组件 | Lambda 函数组件的使用示例 | - Network accessline 158
| [components/lambda](https://github.com/cloudwego/eino-examples/tree/main/components/lambda) | Lambda 组件 | Lambda 函数组件的使用示例 | - Network accessline 164
| 目录 | 名称 | 说明 | |------|------|------| | [quickstart/chat](https://github.com/cloudwego/eino-examples/tree/main/quickstart/chat) | Chat 快速开始 | 最基础的 LLM 对话示例,包含模板、生成、流式输出 | - Network accessline 165
|------|------|------| | [quickstart/chat](https://github.com/cloudwego/eino-examples/tree/main/quickstart/chat) | Chat 快速开始 | 最基础的 LLM 对话示例,包含模板、生成、流式输出 | | [quickstart/eino_assistant](https://github.com/cloudwego/eino-examples/tree/main/q - Network accessline 166
| [quickstart/chat](https://github.com/cloudwego/eino-examples/tree/main/quickstart/chat) | Chat 快速开始 | 最基础的 LLM 对话示例,包含模板、生成、流式输出 | - Network accessline 167
| [quickstart/eino_assistant](https://github.com/cloudwego/eino-examples/tree/main/quickstart/eino_assistant) | Eino 助手 | 完整的 RAG 应用示例,包含知识索引、Agent 服务、Web 界面 | - Network accessline 168
| [quickstart/todoagent](https://github.com/cloudwego/eino-examples/tree/main/quickstart/todoagent) | Todo Agent | 简单的 Todo 管理 Agent 示例 | - Network accessline 174
| 目录 | 名称 | 说明 | |------|------|------| | [devops/debug](https://github.com/cloudwego/eino-examples/tree/main/devops/debug) | 调试工具 | 展示如何使用 Eino 的调试功能,支持 Chain 和 Graph 调试 | - Network accessline 175
|------|------|------| | [devops/debug](https://github.com/cloudwego/eino-examples/tree/main/devops/debug) | 调试工具 | 展示如何使用 Eino 的调试功能,支持 Chain 和 Graph 调试 | | [devops/visualize](https://github.com/cloudwego/eino-examples/tree/main/devops/vis - Network accessline 176
| [devops/debug](https://github.com/cloudwego/eino-examples/tree/main/devops/debug) | 调试工具 | 展示如何使用 Eino 的调试功能,支持 Chain 和 Graph 调试 | - Network accessline 177
| [devops/visualize](https://github.com/cloudwego/eino-examples/tree/main/devops/visualize) | 可视化工具 | 将 Graph/Chain/Workflow 渲染为 Mermaid 图表 | - Network accessline 183
- **Eino 框架**: https://github.com/cloudwego/eino - Network accessline 184
- **Eino 扩展组件**: https://github.com/cloudwego/eino-ext - Network accessline 185
- **官方文档**: https://www.cloudwego.io/zh/docs/eino/
skills/eino/references/docs_examples/LICENSE-APACHE
skills/eino/references/docs_examples/README.md
- Network accessline 76
- **Eino Framework**: https://github.com/cloudwego/eino - Network accessline 77
- **Eino Extensions**: https://github.com/cloudwego/eino-ext - Network accessline 78
- **Official Documentation**: https://www.cloudwego.io/docs/eino/ - Network accessline 82
If you discover a potential security issue in this project, or think you may have discovered a security issue, we ask that you notify Bytedance Security via our [security center](https://security.bytedance.com/src) or [vulnerability reporti - Network accessline 84
our [security center](https://security.bytedance.com/src) or [vulnerability reporting email](sec@bytedance.com).
skills/eino/references/docs_examples/README.zh_CN.md
- Network accessline 46
| 目录 | 名称 | 说明 | |------|------|------| | [components/model](./components/model) | Model | A/B 测试路由、cURL 风格的 HTTP 传输日志 | - Network accessline 47
|------|------|------| | [components/model](./components/model) | Model | A/B 测试路由、cURL 风格的 HTTP 传输日志 | | [components/retriever](./components/retriever) | Retriever | 多查询检索、路由检索 | - Network accessline 48
| [components/model](./components/model) | Model | A/B 测试路由、cURL 风格的 HTTP 传输日志 | - Network accessline 76
- **Eino 框架**: https://github.com/cloudwego/eino - Network accessline 77
- **Eino 扩展组件**: https://github.com/cloudwego/eino-ext - Network accessline 78
- **官方文档**: https://www.cloudwego.io/zh/docs/eino/ - Network accessline 82
如果你在该项目中发现潜在的安全问题,或你认为可能发现了安全问题,请通过我们的[安全中心](https://security.bytedance.com/src)或[漏洞报告邮箱](sec@bytedance.com)通知字节跳动安全团队。
skills/eino/references/docs_examples/_typos.toml
- Network accessline 1
# Typo check: https://github.com/crate-ci/typos
skills/eino/references/docs_examples/adk/.example.env
skills/eino/references/docs_examples/adk/README.md
- Network accessline 21
Additionally, you can enable [coze-loop](https://github.com/coze-dev/coze-loop) trace for examples, see .example.env for keys.
skills/eino/references/docs_examples/adk/common/model/chat_model.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/common/prints/util.go
skills/eino/references/docs_examples/adk/common/store/store.go
skills/eino/references/docs_examples/adk/common/tool/approval_wrapper.go
skills/eino/references/docs_examples/adk/common/tool/follow_up_tool.go
skills/eino/references/docs_examples/adk/common/tool/graphtool/examples/1_chain_summarize/README.md
- Access to secretsline 78
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/common/tool/graphtool/examples/1_chain_summarize/main.go
skills/eino/references/docs_examples/adk/common/tool/graphtool/examples/2_graph_research/README.md
- Access to secretsline 108
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/common/tool/graphtool/examples/2_graph_research/main.go
skills/eino/references/docs_examples/adk/common/tool/graphtool/examples/3_workflow_order/README.md
- Access to secretsline 111
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/common/tool/graphtool/examples/3_workflow_order/main.go
skills/eino/references/docs_examples/adk/common/tool/graphtool/examples/4_nested_interrupt/README.md
- Access to secretsline 141
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/common/tool/graphtool/examples/4_nested_interrupt/main.go
skills/eino/references/docs_examples/adk/common/tool/graphtool/graph_tool.go
skills/eino/references/docs_examples/adk/common/tool/review_edit_wrapper.go
skills/eino/references/docs_examples/adk/common/trace/coze_loop.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 39
wsID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 40
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/helloworld/helloworld.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 36
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/human-in-the-loop/1_approval/README.md
skills/eino/references/docs_examples/adk/human-in-the-loop/1_approval/README_ZH.md
skills/eino/references/docs_examples/adk/human-in-the-loop/1_approval/agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/1_approval/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 41
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Network accessline 42
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/adk/human-in-the-loop/2_review-and-edit/README.md
skills/eino/references/docs_examples/adk/human-in-the-loop/2_review-and-edit/README_ZH.md
skills/eino/references/docs_examples/adk/human-in-the-loop/2_review-and-edit/agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/2_review-and-edit/main.go
skills/eino/references/docs_examples/adk/human-in-the-loop/2_review-and-edit/tool.go
skills/eino/references/docs_examples/adk/human-in-the-loop/3_feedback-loop/README.md
skills/eino/references/docs_examples/adk/human-in-the-loop/3_feedback-loop/README_ZH.md
skills/eino/references/docs_examples/adk/human-in-the-loop/3_feedback-loop/main.go
skills/eino/references/docs_examples/adk/human-in-the-loop/3_feedback-loop/reviewer_agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/3_feedback-loop/writer_agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/4_follow-up/README.md
skills/eino/references/docs_examples/adk/human-in-the-loop/4_follow-up/README_ZH.md
skills/eino/references/docs_examples/adk/human-in-the-loop/4_follow-up/follow_up_agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/4_follow-up/main.go
skills/eino/references/docs_examples/adk/human-in-the-loop/4_follow-up/trip_planner_agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/5_supervisor/README.md
skills/eino/references/docs_examples/adk/human-in-the-loop/5_supervisor/README_ZH.md
skills/eino/references/docs_examples/adk/human-in-the-loop/5_supervisor/agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/5_supervisor/main.go
skills/eino/references/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/README.md
skills/eino/references/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/README_ZH.md
skills/eino/references/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/main.go
skills/eino/references/docs_examples/adk/human-in-the-loop/6_plan-execute-replan/tools.go
skills/eino/references/docs_examples/adk/human-in-the-loop/7_deep-agents/README.md
skills/eino/references/docs_examples/adk/human-in-the-loop/7_deep-agents/README_ZH.md
skills/eino/references/docs_examples/adk/human-in-the-loop/7_deep-agents/agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/7_deep-agents/main.go
skills/eino/references/docs_examples/adk/human-in-the-loop/7_deep-agents/tools.go
skills/eino/references/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/README.md
skills/eino/references/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/README_ZH.md
skills/eino/references/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/agent.go
skills/eino/references/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/main.go
skills/eino/references/docs_examples/adk/human-in-the-loop/8_supervisor-plan-execute/tools.go
skills/eino/references/docs_examples/adk/intro/agent_with_summarization/agent.go
skills/eino/references/docs_examples/adk/intro/agent_with_summarization/summarization/prompt.go
skills/eino/references/docs_examples/adk/intro/agent_with_summarization/summarization/summary.go
skills/eino/references/docs_examples/adk/intro/agent_with_summarization/tools.go
skills/eino/references/docs_examples/adk/intro/chatmodel/chatmodel.go
skills/eino/references/docs_examples/adk/intro/chatmodel/subagents/agent.go
skills/eino/references/docs_examples/adk/intro/chatmodel/subagents/ask_for_clarification.go
skills/eino/references/docs_examples/adk/intro/chatmodel/subagents/booksearch.go
skills/eino/references/docs_examples/adk/intro/custom/myagent.go
skills/eino/references/docs_examples/adk/intro/http-sse-service/README.md
- Network accessline 76
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Network accessline 78
export OPENAI_BASE_URL="https://api.openai.com/v1" - Access to secretsline 81
[Credential-related source omitted] - Network accessline 99
The server will start on `http://localhost:8080`. - Network accessline 107
curl -N 'http://localhost:8080/chat?query=tell me a short story' - Network accessline 131
const eventSource = new EventSource('http://localhost:8080/chat?query=hello'); - Network accessline 173
url = 'http://localhost:8080/chat?query=hello' - Network accessline 175
with requests.get(url, stream=True) as response:
skills/eino/references/docs_examples/adk/intro/http-sse-service/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 67
log.Println("Server starting on http://localhost:8080") log.Println("Try: curl -N 'http://localhost:8080/chat?query=tell me a short story'") - Network accessline 68
log.Println("Try: curl -N 'http://localhost:8080/chat?query=tell me a short story'")
skills/eino/references/docs_examples/adk/intro/session/session_values.go
skills/eino/references/docs_examples/adk/intro/transfer/subagents/chatmodel.go
skills/eino/references/docs_examples/adk/intro/transfer/transfer.go
skills/eino/references/docs_examples/adk/intro/workflow/loop/loop_for_reflection.go
skills/eino/references/docs_examples/adk/intro/workflow/loop/subagents/chatmodel.go
skills/eino/references/docs_examples/adk/intro/workflow/parallel/parallel.go
skills/eino/references/docs_examples/adk/intro/workflow/parallel/subagents/chatmodel.go
skills/eino/references/docs_examples/adk/intro/workflow/sequential/sequential.go
skills/eino/references/docs_examples/adk/intro/workflow/sequential/subagents/chatmodel.go
skills/eino/references/docs_examples/adk/multiagent/deep/README.md
skills/eino/references/docs_examples/adk/multiagent/deep/agents/code_agent.go
skills/eino/references/docs_examples/adk/multiagent/deep/agents/web_search.go
skills/eino/references/docs_examples/adk/multiagent/deep/generic/file_preview.go
skills/eino/references/docs_examples/adk/multiagent/deep/generic/full_plan.go
skills/eino/references/docs_examples/adk/multiagent/deep/generic/plan.go
skills/eino/references/docs_examples/adk/multiagent/deep/generic/submit_result.go
skills/eino/references/docs_examples/adk/multiagent/deep/main.go
skills/eino/references/docs_examples/adk/multiagent/deep/operator.go
skills/eino/references/docs_examples/adk/multiagent/deep/params/consts.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/multiagent/deep/params/params.go
skills/eino/references/docs_examples/adk/multiagent/deep/tools/bash.go
skills/eino/references/docs_examples/adk/multiagent/deep/tools/edit.go
skills/eino/references/docs_examples/adk/multiagent/deep/tools/option.go
skills/eino/references/docs_examples/adk/multiagent/deep/tools/python_runner.go
skills/eino/references/docs_examples/adk/multiagent/deep/tools/read.go
skills/eino/references/docs_examples/adk/multiagent/deep/tools/read_image.go
skills/eino/references/docs_examples/adk/multiagent/deep/tools/submit_result.go
skills/eino/references/docs_examples/adk/multiagent/deep/tools/tree.go
skills/eino/references/docs_examples/adk/multiagent/deep/tools/wrap.go
skills/eino/references/docs_examples/adk/multiagent/deep/utils/model.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/multiagent/deep/utils/utils.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/README.md
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/agents/executor/code_agent.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/agents/executor/executor.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/agents/executor/web_search.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/agents/planner/planner.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/agents/replanner/replanner.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/agents/report/report_agent.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 53
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/agents/wrap_plan.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/generic/file_preview.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/generic/full_plan.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/generic/plan.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/generic/submit_result.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/main.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/operator.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/params/consts.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/params/params.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/tools/bash.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/tools/edit.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/tools/option.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/tools/python_runner.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/tools/read.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/tools/read_image.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/tools/submit_result.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/tools/tree.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/tools/wrap.go
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/utils/model.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/utils/utils.go
skills/eino/references/docs_examples/adk/multiagent/integration-project-manager/agent.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 41
[Credential-related source omitted]
skills/eino/references/docs_examples/adk/multiagent/integration-project-manager/agents/coder.go
skills/eino/references/docs_examples/adk/multiagent/integration-project-manager/agents/project_manager.go
skills/eino/references/docs_examples/adk/multiagent/integration-project-manager/agents/researcher.go
skills/eino/references/docs_examples/adk/multiagent/integration-project-manager/agents/reviewer.go
skills/eino/references/docs_examples/adk/multiagent/layered-supervisor/agent.go
skills/eino/references/docs_examples/adk/multiagent/layered-supervisor/layered_supervisor.go
skills/eino/references/docs_examples/adk/multiagent/plan-execute-replan/agent/agent.go
skills/eino/references/docs_examples/adk/multiagent/plan-execute-replan/plan-execute-replan.go
skills/eino/references/docs_examples/adk/multiagent/plan-execute-replan/tools/ask_for_clarification.go
skills/eino/references/docs_examples/adk/multiagent/plan-execute-replan/tools/travel_tools.go
skills/eino/references/docs_examples/adk/multiagent/supervisor/agent.go
skills/eino/references/docs_examples/adk/multiagent/supervisor/supervisor.go
skills/eino/references/docs_examples/components/document/parser/customparser/custom_parser.go
skills/eino/references/docs_examples/components/document/parser/customparser/parse.go
skills/eino/references/docs_examples/components/document/parser/extparser/ext_parser.go
skills/eino/references/docs_examples/components/document/parser/extparser/testdata/test.html
skills/eino/references/docs_examples/components/document/parser/textparser/text_parser.go
skills/eino/references/docs_examples/components/lambda/lambda.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 27
// INFO: 参考文档 https://www.cloudwego.io/zh/docs/eino/core_modules/components/lambda_guide/
skills/eino/references/docs_examples/components/model/abtest/ab_router.go
skills/eino/references/docs_examples/components/model/abtest/example/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 51
[Credential-related source omitted]
skills/eino/references/docs_examples/components/model/httptransport/curlrt.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 17
// Package httptransport provides a configurable cURL-style logging RoundTripper // for HTTP-based ChatModel clients. It logs the real outbound HTTP request // (as a cURL command) and the inbound HTTP response. Streaming responses (SSE - Network accessline 18
// for HTTP-based ChatModel clients. It logs the real outbound HTTP request // (as a cURL command) and the inbound HTTP response. Streaming responses (SSE // or NDJSON) can be logged chunk-by-chunk without breaking the stream. - Network accessline 19
// (as a cURL command) and the inbound HTTP response. Streaming responses (SSE - Network accessline 22
// Quick usage: // // client := &http.Client{Transport: httptransport.NewCurlRT( - Network accessline 23
// // client := &http.Client{Transport: httptransport.NewCurlRT( // http.DefaultTransport, - Network accessline 24
// client := &http.Client{Transport: httptransport.NewCurlRT( - Network accessline 72
// CurlRT is an http.RoundTripper that logs requests/responses in cURL style. - Network accessline 150
req.Body = io.NopCloser(bytes.NewReader(reqBody)) } curl := c.buildCurl(req, reqBody) - Network accessline 151
} curl := c.buildCurl(req, reqBody) if c.ctxLogger != nil { - Network accessline 152
curl := c.buildCurl(req, reqBody) - Network accessline 153
if c.ctxLogger != nil { c.ctxLogger.Printf(req.Context(), "[curl request] %s", curl) } else { - Network accessline 154
c.ctxLogger.Printf(req.Context(), "[curl request] %s", curl) - Network accessline 155
} else { c.logger.Printf("[curl request] %s", curl) } - Network accessline 156
c.logger.Printf("[curl request] %s", curl) - Network accessline 165
if c.streamEnabled && c.streamCTFilter(ct) { if c.ctxLogger != nil { c.ctxLogger.Printf(req.Context(), "[curl response] HTTP/%d.%d %d\n%s\n\n(streaming...)", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Heade - Network accessline 166
if c.ctxLogger != nil { c.ctxLogger.Printf(req.Context(), "[curl response] HTTP/%d.%d %d\n%s\n\n(streaming...)", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Header)) } else { - Network accessline 167
c.ctxLogger.Printf(req.Context(), "[curl response] HTTP/%d.%d %d\n%s\n\n(streaming...)", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Header)) - Network accessline 168
} else { c.logger.Printf("[curl response] HTTP/%d.%d %d\n%s\n\n(streaming...)", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Header)) } - Network accessline 169
c.logger.Printf("[curl response] HTTP/%d.%d %d\n%s\n\n(streaming...)", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Header)) - Network accessline 179
} if c.ctxLogger != nil { c.ctxLogger.Printf(req.Context(), "[curl response] HTTP/%d.%d %d\n%s\n\n%s", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Header), string(respBody)) - Network accessline 180
if c.ctxLogger != nil { c.ctxLogger.Printf(req.Context(), "[curl response] HTTP/%d.%d %d\n%s\n\n%s", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Header), string(respBody)) } else { - Network accessline 181
c.ctxLogger.Printf(req.Context(), "[curl response] HTTP/%d.%d %d\n%s\n\n%s", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Header), string(respBody)) - Network accessline 182
} else { c.logger.Printf("[curl response] HTTP/%d.%d %d\n%s\n\n%s", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Header), string(respBody)) } - Network accessline 183
c.logger.Printf("[curl response] HTTP/%d.%d %d\n%s\n\n%s", resp.ProtoMajor, resp.ProtoMinor, resp.StatusCode, c.formatHeaders(resp.Header), string(respBody)) - Network accessline 198
func (c *CurlRT) buildCurl(req *http.Request, body []byte) string { var b bytes.Buffer b.WriteString("curl -X ") - Network accessline 199
var b bytes.Buffer b.WriteString("curl -X ") b.WriteString(sanitizeLogValue(req.Method)) - Network accessline 200
b.WriteString("curl -X ") - Network accessline 265
if i < len(lines)-1 || len(line) > 0 { if lrc.cl != nil { lrc.cl.Printf(lrc.ctx, "[curl stream chunk] %s", string(line)) - Network accessline 266
if lrc.cl != nil { lrc.cl.Printf(lrc.ctx, "[curl stream chunk] %s", string(line)) } else { - Network accessline 267
lrc.cl.Printf(lrc.ctx, "[curl stream chunk] %s", string(line)) - Network accessline 286
func (lrc *loggingReadCloser) Close() error { if lrc.summary != nil && lrc.summary.Len() > 0 { lrc.l.Printf("[curl stream summary]\n%s", lrc.summary.String()) - Network accessline 287
if lrc.summary != nil && lrc.summary.Len() > 0 { lrc.l.Printf("[curl stream summary]\n%s", lrc.summary.String()) } - Network accessline 288
lrc.l.Printf("[curl stream summary]\n%s", lrc.summary.String())
skills/eino/references/docs_examples/components/model/httptransport/example/invoke/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 35
client := &http.Client{Transport: httptransport.NewCurlRT( - Access to secretsline 45
[Credential-related source omitted]
skills/eino/references/docs_examples/components/model/httptransport/example/stream/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 37
client := &http.Client{Transport: httptransport.NewCurlRT( - Access to secretsline 49
[Credential-related source omitted]
skills/eino/references/docs_examples/components/prompt/chat_prompt/chat_prompt.go
skills/eino/references/docs_examples/components/retriever/multiquery/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 35
[Credential-related source omitted]
skills/eino/references/docs_examples/components/retriever/router/main.go
skills/eino/references/docs_examples/components/tool/jsonschema/main.go
skills/eino/references/docs_examples/components/tool/jsonschema/readme.md
- Network accessline 6
关于 tool 更多的信息,可以参考: https://www.cloudwego.io/zh/docs/eino/core_modules/components/tools_node_guide/
skills/eino/references/docs_examples/components/tool/mcptool/callresulthandler/main.go
skills/eino/references/docs_examples/components/tool/middlewares/errorremover/errorremover.go
skills/eino/references/docs_examples/components/tool/middlewares/errorremover/example/main.go
skills/eino/references/docs_examples/components/tool/middlewares/jsonfix/example/main.go
skills/eino/references/docs_examples/components/tool/middlewares/jsonfix/json_fix_middleware.go
skills/eino/references/docs_examples/components/tool/middlewares/jsonfix/json_fix_middleware_test.go
skills/eino/references/docs_examples/compose/batch/README.md
skills/eino/references/docs_examples/compose/batch/batch/node.go
skills/eino/references/docs_examples/compose/batch/batch/options.go
skills/eino/references/docs_examples/compose/batch/batch/store.go
skills/eino/references/docs_examples/compose/batch/batch/types.go
skills/eino/references/docs_examples/compose/batch/main.go
skills/eino/references/docs_examples/compose/chain/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 41
[Credential-related source omitted] - Network accessline 42
modelName := os.Getenv("OPENAI_MODEL_NAME") cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 43
[Credential-related source omitted] - Network accessline 44
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/graph/async_node/main.go
skills/eino/references/docs_examples/compose/graph/async_node/service.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 41
return } url := "https://example.com/report/" + strings.ReplaceAll(strings.ToLower(content), " ", "-") - Network accessline 42
} url := "https://example.com/report/" + strings.ReplaceAll(strings.ToLower(content), " ", "-") notify <- reportResult{url, nil} - Network accessline 43
url := "https://example.com/report/" + strings.ReplaceAll(strings.ToLower(content), " ", "-")
skills/eino/references/docs_examples/compose/graph/react_with_interrupt/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 39
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 40
[Credential-related source omitted] - Network accessline 41
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 122
[Credential-related source omitted]
skills/eino/references/docs_examples/compose/graph/simple/graph.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 41
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 42
[Credential-related source omitted] - Network accessline 43
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/graph/simple/type_match_test.go
skills/eino/references/docs_examples/compose/graph/state/state_graph.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 37
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 38
[Credential-related source omitted] - Network accessline 39
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/graph/tool_call_agent/tool_call_agent.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 40
[Credential-related source omitted] - Network accessline 41
modelName := os.Getenv("OPENAI_MODEL_NAME") cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 42
[Credential-related source omitted] - Network accessline 43
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/graph/tool_call_once/tool_call_once.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 40
[Credential-related source omitted] - Network accessline 41
modelName := os.Getenv("OPENAI_MODEL_NAME") cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 42
[Credential-related source omitted] - Network accessline 43
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/graph/two_model_chat/two_model_chat.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 42
[Credential-related source omitted] - Network accessline 45
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Network accessline 46
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/workflow/1_simple/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 36
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 37
[Credential-related source omitted] - Network accessline 38
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/workflow/2_field_mapping/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 34
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 35
[Credential-related source omitted] - Network accessline 36
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/workflow/3_data_only/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 31
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 32
[Credential-related source omitted] - Network accessline 33
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/workflow/4_control_only_branch/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 32
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 33
[Credential-related source omitted] - Network accessline 34
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/workflow/5_static_values/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 32
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 33
[Credential-related source omitted] - Network accessline 34
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/compose/workflow/6_stream_field_map/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 36
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 37
[Credential-related source omitted] - Network accessline 38
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/devops/debug/chain/chain.go
skills/eino/references/docs_examples/devops/debug/graph/graph.go
skills/eino/references/docs_examples/devops/debug/graph/state_graph.go
skills/eino/references/docs_examples/devops/debug/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 35
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 36
[Credential-related source omitted] - Network accessline 37
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/devops/visualize/mermaid.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 441
<head> <meta charset="utf-8"> <script src="https://unpkg.com/mermaid@10/dist/mermaid.min.js"></script> - Network accessline 442
<meta charset="utf-8"> <script src="https://unpkg.com/mermaid@10/dist/mermaid.min.js"></script> <style>body{margin:0;padding:20px;background:#fff}</style> - Network accessline 443
<script src="https://unpkg.com/mermaid@10/dist/mermaid.min.js"></script>
skills/eino/references/docs_examples/flow/agent/deer-go/README.md
- Network accessline 2
> 本仓库参考 https://github.com/bytedance/deer-flow 完成改写 - Network accessline 27
5. 如果想采集 trace 和 metrics 埋点信息,可通过配置 `APMPLUS_APP_KEY` 环境变量,来开启埋点采集。采集数据将上报至 APMPlus 。可在 [APMPlus 控制台](https://console.volcengine.com/apmplus-server) 中查看采集到的调用 trace 和 metrics 埋点信息。[火山引擎 APMPlus 文档](https://www.volcengine.com/docs/6431/69092 - Access to secretsline 29
[Credential-related source omitted]
skills/eino/references/docs_examples/flow/agent/deer-go/biz/consts/consts.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/eino/builder.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/eino/coder.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/eino/coordinator.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/eino/human_feedback.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/eino/investigator.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/eino/planner.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/eino/reporter.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/eino/research_team.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/eino/researcher.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/handler/deer.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/infra/llms.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/infra/logger.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/infra/mcp.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/infra/template.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/infra/tracing.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 48
[Credential-related source omitted] - Network accessline 68
func initAPMPlusCallback(ctx context.Context, appKey, region string) (callbacks.Handler, func(ctx context.Context) error) { ilog.EventInfo(ctx, "Init APMPlus callback, watch at: https://console.volcengine.com/apmplus-server", region) - Network accessline 69
ilog.EventInfo(ctx, "Init APMPlus callback, watch at: https://console.volcengine.com/apmplus-server", region) - Network accessline 101
func InitCozeLoopTracing() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 102
[Credential-related source omitted] - Network accessline 103
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/flow/agent/deer-go/biz/mcps/python/server.py
skills/eino/references/docs_examples/flow/agent/deer-go/biz/mcps/python/uv.lock
- Network accessline 6
name = "annotated-types" version = "0.7.0" source = { registry = "https://pypi.org/simple" } - Network accessline 7
version = "0.7.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:af - Network accessline 8
source = { registry = "https://pypi.org/simple" } - Network accessline 9
sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", siz - Network accessline 10
wheels = [ { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773 - Network accessline 11
{ url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", s - Network accessline 15
name = "anyio" version = "4.9.0" source = { registry = "https://pypi.org/simple" } - Network accessline 16
version = "4.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 17
source = { registry = "https://pypi.org/simple" } - Network accessline 21
{ name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/95/7d/4c1bd541d4dffa1b52bd83fb8527089e097a106fc90b467a7313b105f840/anyio-4.9.0.tar.gz", hash = "sha256:673c0 - Network accessline 22
] sdist = { url = "https://files.pythonhosted.org/packages/95/7d/4c1bd541d4dffa1b52bd83fb8527089e097a106fc90b467a7313b105f840/anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028", size = 1909 - Network accessline 23
sdist = { url = "https://files.pythonhosted.org/packages/95/7d/4c1bd541d4dffa1b52bd83fb8527089e097a106fc90b467a7313b105f840/anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028", size = 190949 - Network accessline 24
wheels = [ { url = "https://files.pythonhosted.org/packages/a1/ee/48ca1a7c89ffec8b6a0c5d02b89c305671d5ffd8d3c94acf8b8c408575bb/anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93 - Network accessline 25
{ url = "https://files.pythonhosted.org/packages/a1/ee/48ca1a7c89ffec8b6a0c5d02b89c305671d5ffd8d3c94acf8b8c408575bb/anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c", size = 1009 - Network accessline 29
name = "certifi" version = "2025.7.14" source = { registry = "https://pypi.org/simple" } - Network accessline 30
version = "2025.7.14" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41/certifi-2025.7.14.tar.gz", hash = "sha256:8e - Network accessline 31
source = { registry = "https://pypi.org/simple" } - Network accessline 32
sdist = { url = "https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41/certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995", size = - Network accessline 33
wheels = [ { url = "https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03/certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6 - Network accessline 34
{ url = "https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03/certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2", size - Network accessline 38
name = "click" version = "8.2.1" source = { registry = "https://pypi.org/simple" } - Network accessline 39
version = "8.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 40
source = { registry = "https://pypi.org/simple" } - Network accessline 42
{ name = "colorama", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d - Network accessline 43
] sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 2863 - Network accessline 44
sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342 - Network accessline 45
wheels = [ { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12 - Network accessline 46
{ url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 1022 - Network accessline 50
name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } - Network accessline 51
version = "0.4.6" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb - Network accessline 52
source = { registry = "https://pypi.org/simple" } - Network accessline 53
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 276 - Network accessline 54
wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57a - Network accessline 55
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size - Network accessline 59
name = "h11" version = "0.16.0" source = { registry = "https://pypi.org/simple" } - Network accessline 60
version = "0.16.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45 - Network accessline 61
source = { registry = "https://pypi.org/simple" } - Network accessline 62
sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, - Network accessline 63
wheels = [ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86 - Network accessline 64
{ url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 - Network accessline 68
name = "httpcore" version = "1.0.9" source = { registry = "https://pypi.org/simple" } - Network accessline 69
version = "1.0.9" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 70
source = { registry = "https://pypi.org/simple" } - Network accessline 73
{ name = "h11" }, ] sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff - Network accessline 74
] sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 8 - Network accessline 75
sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 854 - Network accessline 76
wheels = [ { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1 - Network accessline 77
{ url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 7 - Network accessline 81
name = "httpx" version = "0.28.1" source = { registry = "https://pypi.org/simple" } - Network accessline 82
version = "0.28.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 83
source = { registry = "https://pypi.org/simple" } - Network accessline 88
{ name = "idna" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e - Network accessline 89
] sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141 - Network accessline 90
sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 14140 - Network accessline 91
wheels = [ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59 - Network accessline 92
{ url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 735 - Network accessline 96
name = "httpx-sse" version = "0.4.1" source = { registry = "https://pypi.org/simple" } - Network accessline 97
version = "0.4.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/6e/fa/66bd985dd0b7c109a3bcb89272ee0bfb7e2b4d06309ad7b38ff866734b2a/httpx_sse-0.4.1.tar.gz", hash = "sha256:8f44d344 - Network accessline 98
source = { registry = "https://pypi.org/simple" } - Network accessline 99
sdist = { url = "https://files.pythonhosted.org/packages/6e/fa/66bd985dd0b7c109a3bcb89272ee0bfb7e2b4d06309ad7b38ff866734b2a/httpx_sse-0.4.1.tar.gz", hash = "sha256:8f44d34414bc7b21bf3602713005c5df4917884f76072479b21f68befa4ea26e", size = 12 - Network accessline 100
wheels = [ { url = "https://files.pythonhosted.org/packages/25/0a/6269e3473b09aed2dab8aa1a600c70f31f00ae1349bee30658f7e358a159/httpx_sse-0.4.1-py3-none-any.whl", hash = "sha256:cba42174344c3a5b06f255ce65b350880f962d99ead85e776f23c6618a3 - Network accessline 101
{ url = "https://files.pythonhosted.org/packages/25/0a/6269e3473b09aed2dab8aa1a600c70f31f00ae1349bee30658f7e358a159/httpx_sse-0.4.1-py3-none-any.whl", hash = "sha256:cba42174344c3a5b06f255ce65b350880f962d99ead85e776f23c6618a377a37", size = - Network accessline 105
name = "idna" version = "3.10" source = { registry = "https://pypi.org/simple" } - Network accessline 106
version = "3.10" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda - Network accessline 107
source = { registry = "https://pypi.org/simple" } - Network accessline 108
sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, - Network accessline 109
wheels = [ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" - Network accessline 110
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, - Network accessline 114
name = "mcp" version = "1.8.1" source = { registry = "https://pypi.org/simple" } - Network accessline 115
version = "1.8.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 116
source = { registry = "https://pypi.org/simple" } - Network accessline 126
{ name = "uvicorn", marker = "sys_platform != 'emscripten'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7c/13/16b712e8a3be6a736b411df2fc6b4e75eb1d3e99b1cd57a3a1decf17f612/mcp-1.8.1.tar.gz", hash = "sha256:ec0646271d93749f7 - Network accessline 127
] sdist = { url = "https://files.pythonhosted.org/packages/7c/13/16b712e8a3be6a736b411df2fc6b4e75eb1d3e99b1cd57a3a1decf17f612/mcp-1.8.1.tar.gz", hash = "sha256:ec0646271d93749f784d2316fb5fe6102fb0d1be788ec70a9e2517e8f2722c0e", size = 265605 - Network accessline 128
sdist = { url = "https://files.pythonhosted.org/packages/7c/13/16b712e8a3be6a736b411df2fc6b4e75eb1d3e99b1cd57a3a1decf17f612/mcp-1.8.1.tar.gz", hash = "sha256:ec0646271d93749f784d2316fb5fe6102fb0d1be788ec70a9e2517e8f2722c0e", size = 265605, - Network accessline 129
wheels = [ { url = "https://files.pythonhosted.org/packages/1c/5d/91cf0d40e40ae9ecf8d4004e0f9611eea86085aa0b5505493e0ff53972da/mcp-1.8.1-py3-none-any.whl", hash = "sha256:948e03783859fa35abe05b9b6c0a1d5519be452fc079dc8d7f682549591c1770" - Network accessline 130
{ url = "https://files.pythonhosted.org/packages/1c/5d/91cf0d40e40ae9ecf8d4004e0f9611eea86085aa0b5505493e0ff53972da/mcp-1.8.1-py3-none-any.whl", hash = "sha256:948e03783859fa35abe05b9b6c0a1d5519be452fc079dc8d7f682549591c1770", size = 119761 - Network accessline 134
name = "pydantic" version = "2.11.7" source = { registry = "https://pypi.org/simple" } - Network accessline 135
version = "2.11.7" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 136
source = { registry = "https://pypi.org/simple" } - Network accessline 141
{ name = "typing-inspection" }, ] sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d - Network accessline 142
] sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = - Network accessline 143
sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 78 - Network accessline 144
wheels = [ { url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b - Network accessline 145
{ url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = - Network accessline 149
name = "pydantic-core" version = "2.33.2" source = { registry = "https://pypi.org/simple" } - Network accessline 150
version = "2.33.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 151
source = { registry = "https://pypi.org/simple" } - Network accessline 153
{ name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7 - Network accessline 154
] sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", si - Network accessline 155
sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size - Network accessline 156
wheels = [ { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca90 - Network accessline 157
{ url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142b - Network accessline 158
{ url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b092 - Network accessline 159
{ url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e11 - Network accessline 160
{ url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b9141 - Network accessline 161
{ url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d91 - Network accessline 162
{ url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3 - Network accessline 163
{ url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f - Network accessline 164
{ url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45 - Network accessline 165
{ url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365a - Network accessline 166
{ url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda8 - Network accessline 167
{ url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067c - Network accessline 168
{ url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290 - Network accessline 169
{ url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaa - Network accessline 170
{ url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb - Network accessline 171
{ url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cf - Network accessline 172
{ url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba89391 - Network accessline 173
{ url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0 - Network accessline 174
{ url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb - Network accessline 175
{ url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad1 - Network accessline 176
{ url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469e - Network accessline 177
{ url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe75 - Network accessline 178
{ url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638 - Network accessline 179
{ url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0ea - Network accessline 180
{ url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068ad - Network accessline 181
{ url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9 - Network accessline 182
{ url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849 - Network accessline 183
{ url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2be - Network accessline 184
{ url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e8925 - Network accessline 185
{ url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61 - Network accessline 186
{ url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af75 - Network accessline 187
{ url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af447 - Network accessline 191
name = "pydantic-settings" version = "2.10.1" source = { registry = "https://pypi.org/simple" } - Network accessline 192
version = "2.10.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 193
source = { registry = "https://pypi.org/simple" } - Network accessline 197
{ name = "typing-inspection" }, ] sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5 - Network accessline 198
] sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee" - Network accessline 199
sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee", - Network accessline 200
wheels = [ { url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea - Network accessline 201
{ url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796" - Network accessline 205
name = "python-dotenv" version = "1.1.1" source = { registry = "https://pypi.org/simple" } - Network accessline 206
version = "1.1.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6 - Network accessline 207
source = { registry = "https://pypi.org/simple" } - Network accessline 208
sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size - Network accessline 209
wheels = [ { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448 - Network accessline 210
{ url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", siz - Network accessline 225
name = "python-multipart" version = "0.0.20" source = { registry = "https://pypi.org/simple" } - Network accessline 226
version = "0.0.20" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f3/87/f44d7c9f274c7ee665a29b885ec97089ec5dc034c7f3fafa03da9e39a09e/python_multipart-0.0.20.tar.gz", hash = "sha256 - Network accessline 227
source = { registry = "https://pypi.org/simple" } - Network accessline 228
sdist = { url = "https://files.pythonhosted.org/packages/f3/87/f44d7c9f274c7ee665a29b885ec97089ec5dc034c7f3fafa03da9e39a09e/python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13", s - Network accessline 229
wheels = [ { url = "https://files.pythonhosted.org/packages/45/58/38b5afbc1a800eeea951b9285d3912613f2603bdf897a4ab0f4bd7f405fc/python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee - Network accessline 230
{ url = "https://files.pythonhosted.org/packages/45/58/38b5afbc1a800eeea951b9285d3912613f2603bdf897a4ab0f4bd7f405fc/python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104", - Network accessline 234
name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } - Network accessline 235
version = "1.3.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc67 - Network accessline 236
source = { registry = "https://pypi.org/simple" } - Network accessline 237
sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 2037 - Network accessline 238
wheels = [ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f10052 - Network accessline 239
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10 - Network accessline 243
name = "sse-starlette" version = "2.4.1" source = { registry = "https://pypi.org/simple" } - Network accessline 244
version = "2.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 245
source = { registry = "https://pypi.org/simple" } - Network accessline 247
{ name = "anyio" }, ] sdist = { url = "https://files.pythonhosted.org/packages/07/3e/eae74d8d33e3262bae0a7e023bb43d8bdd27980aa3557333f4632611151f/sse_starlette-2.4.1.tar.gz", hash = "sha256:7c8a800a1ca343e9165fc06bbda45c78e4c6166320707ae30b - Network accessline 248
] sdist = { url = "https://files.pythonhosted.org/packages/07/3e/eae74d8d33e3262bae0a7e023bb43d8bdd27980aa3557333f4632611151f/sse_starlette-2.4.1.tar.gz", hash = "sha256:7c8a800a1ca343e9165fc06bbda45c78e4c6166320707ae30b416c42da070926", siz - Network accessline 249
sdist = { url = "https://files.pythonhosted.org/packages/07/3e/eae74d8d33e3262bae0a7e023bb43d8bdd27980aa3557333f4632611151f/sse_starlette-2.4.1.tar.gz", hash = "sha256:7c8a800a1ca343e9165fc06bbda45c78e4c6166320707ae30b416c42da070926", size - Network accessline 250
wheels = [ { url = "https://files.pythonhosted.org/packages/e4/f1/6c7eaa8187ba789a6dd6d74430307478d2a91c23a5452ab339b6fbe15a08/sse_starlette-2.4.1-py3-none-any.whl", hash = "sha256:08b77ea898ab1a13a428b2b6f73cfe6d0e607a7b4e15b9bb23e4a37 - Network accessline 251
{ url = "https://files.pythonhosted.org/packages/e4/f1/6c7eaa8187ba789a6dd6d74430307478d2a91c23a5452ab339b6fbe15a08/sse_starlette-2.4.1-py3-none-any.whl", hash = "sha256:08b77ea898ab1a13a428b2b6f73cfe6d0e607a7b4e15b9bb23e4a37b087fd39a", siz - Network accessline 255
name = "starlette" version = "0.47.1" source = { registry = "https://pypi.org/simple" } - Network accessline 256
version = "0.47.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 257
source = { registry = "https://pypi.org/simple" } - Network accessline 260
{ name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0a/69/662169fdb92fb96ec3eaee218cf540a629d629c86d7993d9651226a6789b/starlette-0.47.1.tar.gz", hash = "sha256: - Network accessline 261
] sdist = { url = "https://files.pythonhosted.org/packages/0a/69/662169fdb92fb96ec3eaee218cf540a629d629c86d7993d9651226a6789b/starlette-0.47.1.tar.gz", hash = "sha256:aef012dd2b6be325ffa16698f9dc533614fb1cebd593a906b90dc1025529a79b", size = - Network accessline 262
sdist = { url = "https://files.pythonhosted.org/packages/0a/69/662169fdb92fb96ec3eaee218cf540a629d629c86d7993d9651226a6789b/starlette-0.47.1.tar.gz", hash = "sha256:aef012dd2b6be325ffa16698f9dc533614fb1cebd593a906b90dc1025529a79b", size = 2 - Network accessline 263
wheels = [ { url = "https://files.pythonhosted.org/packages/82/95/38ef0cd7fa11eaba6a99b3c4f5ac948d8bc6ff199aabd327a29cc000840c/starlette-0.47.1-py3-none-any.whl", hash = "sha256:5e11c9f5c7c3f24959edbf2dffdc01bba860228acf657129467d8a7468 - Network accessline 264
{ url = "https://files.pythonhosted.org/packages/82/95/38ef0cd7fa11eaba6a99b3c4f5ac948d8bc6ff199aabd327a29cc000840c/starlette-0.47.1-py3-none-any.whl", hash = "sha256:5e11c9f5c7c3f24959edbf2dffdc01bba860228acf657129467d8a7468591527", size = - Network accessline 268
name = "typing-extensions" version = "4.14.1" source = { registry = "https://pypi.org/simple" } - Network accessline 269
version = "4.14.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha25 - Network accessline 270
source = { registry = "https://pypi.org/simple" } - Network accessline 271
sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36", - Network accessline 272
wheels = [ { url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fde - Network accessline 273
{ url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76" - Network accessline 277
name = "typing-inspection" version = "0.4.1" source = { registry = "https://pypi.org/simple" } - Network accessline 278
version = "0.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 279
source = { registry = "https://pypi.org/simple" } - Network accessline 281
{ name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b35 - Network accessline 282
] sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", - Network accessline 283
sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", s - Network accessline 284
wheels = [ { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2 - Network accessline 285
{ url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", - Network accessline 289
name = "uvicorn" version = "0.35.0" source = { registry = "https://pypi.org/simple" } - Network accessline 290
version = "0.35.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - Network accessline 291
source = { registry = "https://pypi.org/simple" } - Network accessline 294
{ name = "h11" }, ] sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96 - Network accessline 295
] sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01", size = 7 - Network accessline 296
sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01", size = 784 - Network accessline 297
wheels = [ { url = "https://files.pythonhosted.org/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc - Network accessline 298
{ url = "https://files.pythonhosted.org/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a", size = 6
skills/eino/references/docs_examples/flow/agent/deer-go/biz/model/planner.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/model/server_model.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/model/state.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/model/state_test.go
skills/eino/references/docs_examples/flow/agent/deer-go/biz/prompts/ppt_composer.md
- Network accessline 95

skills/eino/references/docs_examples/flow/agent/deer-go/biz/prompts/researcher.md
- Network accessline 56
- **References**: List all sources used with their complete URLs in link reference format at the end of the document. Make sure to include an empty line between each reference for better readability. Use this format for each reference: - Network accessline 58
- [Source Title](https://example.com/page1) - Network accessline 60
- [Source Title](https://example.com/page2)
skills/eino/references/docs_examples/flow/agent/deer-go/biz/util/util.go
skills/eino/references/docs_examples/flow/agent/deer-go/conf/config.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 40
[Credential-related source omitted]
skills/eino/references/docs_examples/flow/agent/deer-go/conf/deer-go.yaml.1
skills/eino/references/docs_examples/flow/agent/deer-go/main.go
skills/eino/references/docs_examples/flow/agent/deer-go/router.go
skills/eino/references/docs_examples/flow/agent/deer-go/router_gen.go
skills/eino/references/docs_examples/flow/agent/deer-go/run.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/eino/references/docs_examples/flow/agent/deer-go/script/bootstrap.sh
- Executable scriptline 1
#!/bin/bash
skills/eino/references/docs_examples/flow/agent/manus/README.md
- Network accessline 1
This project implements a simple manus agent using the Eino framework, inspired by the excellent work of the [OpenManus](https://github.com/mannaandpoem/OpenManus).
skills/eino/references/docs_examples/flow/agent/manus/log.go
skills/eino/references/docs_examples/flow/agent/manus/manus.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Network accessline 68
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Network accessline 69
cozeloopWorkspaceID = os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/flow/agent/manus/prompt.go
skills/eino/references/docs_examples/flow/agent/multiagent/host/journal/answer_with_journal_specialist.go
skills/eino/references/docs_examples/flow/agent/multiagent/host/journal/host.go
skills/eino/references/docs_examples/flow/agent/multiagent/host/journal/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 34
[Credential-related source omitted]
skills/eino/references/docs_examples/flow/agent/multiagent/host/journal/read_journal_specialist.go
skills/eino/references/docs_examples/flow/agent/multiagent/host/journal/readme.md
- Network accessline 5
详细介绍可以参考: https://www.cloudwego.io/zh/docs/eino/core_modules/flow_integration_components/multi_agent_hosting/
skills/eino/references/docs_examples/flow/agent/multiagent/host/journal/write_journal_specialist.go
skills/eino/references/docs_examples/flow/agent/multiagent/plan_execute/compose.go
skills/eino/references/docs_examples/flow/agent/multiagent/plan_execute/debug/debug_output.go
skills/eino/references/docs_examples/flow/agent/multiagent/plan_execute/debug/mock_model.go
skills/eino/references/docs_examples/flow/agent/multiagent/plan_execute/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 46
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 47
[Credential-related source omitted] - Network accessline 48
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted]
skills/eino/references/docs_examples/flow/agent/multiagent/plan_execute/prompt/prompt.go
skills/eino/references/docs_examples/flow/agent/multiagent/plan_execute/tools/data.go
skills/eino/references/docs_examples/flow/agent/multiagent/plan_execute/tools/theme_park.go
skills/eino/references/docs_examples/flow/agent/multiagent/plan_execute/tools/tools.go
skills/eino/references/docs_examples/flow/agent/react/dynamic_option_example/README.md
- Access to secretsline 165
[Credential-related source omitted]
skills/eino/references/docs_examples/flow/agent/react/dynamic_option_example/dynamic/model.go
skills/eino/references/docs_examples/flow/agent/react/dynamic_option_example/dynamic/state.go
skills/eino/references/docs_examples/flow/agent/react/dynamic_option_example/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 46
[Credential-related source omitted] - Network accessline 52
client := &http.Client{Transport: httptransport.NewCurlRT(
skills/eino/references/docs_examples/flow/agent/react/memory_example/README.md
- Access to secretsline 41
[Credential-related source omitted]
skills/eino/references/docs_examples/flow/agent/react/memory_example/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 41
[Credential-related source omitted]
skills/eino/references/docs_examples/flow/agent/react/memory_example/memory/inmem.go
skills/eino/references/docs_examples/flow/agent/react/memory_example/memory/redis.go
skills/eino/references/docs_examples/flow/agent/react/memory_example/memory/store.go
skills/eino/references/docs_examples/flow/agent/react/react.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 44
[Credential-related source omitted] - Network accessline 45
arkModelName := os.Getenv("ARK_MODEL_NAME") cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 46
[Credential-related source omitted] - Network accessline 47
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/flow/agent/react/readme.md
- Network accessline 5
详细介绍可以参考: https://www.cloudwego.io/zh/docs/eino/core_modules/flow_integration_components/react_agent_manual/
skills/eino/references/docs_examples/flow/agent/react/tools/service.go
skills/eino/references/docs_examples/flow/agent/react/tools/tools.go
skills/eino/references/docs_examples/flow/agent/react/unknown_tool_handler_example/main.go
skills/eino/references/docs_examples/flow/agent/react/unknown_tool_handler_example/tools/sum.go
skills/eino/references/docs_examples/internal/gptr/ptr.go
skills/eino/references/docs_examples/internal/logs/logger.go
skills/eino/references/docs_examples/quickstart/chat/generate.go
skills/eino/references/docs_examples/quickstart/chat/main.go
skills/eino/references/docs_examples/quickstart/chat/ollama.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 27
func createOllamaChatModel(ctx context.Context) model.ToolCallingChatModel { chatModel, err := ollama.NewChatModel(ctx, &ollama.ChatModelConfig{ BaseURL: "http://localhost:11434", // Ollama 服务地址 - Network accessline 28
chatModel, err := ollama.NewChatModel(ctx, &ollama.ChatModelConfig{ BaseURL: "http://localhost:11434", // Ollama 服务地址 Model: "llama2", // 模型名称 - Network accessline 29
BaseURL: "http://localhost:11434", // Ollama 服务地址
skills/eino/references/docs_examples/quickstart/chat/openai.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 29
[Credential-related source omitted]
skills/eino/references/docs_examples/quickstart/chat/stream.go
skills/eino/references/docs_examples/quickstart/chat/template.go
skills/eino/references/docs_examples/quickstart/eino_assistant/.env
- Network accessline 1
# ark model: https://console.volcengine.com/ark - Access to secretsline 8
[Credential-related source omitted] - Network accessline 10
# apmplus: https://console.volcengine.com/apmplus-server - Access to secretsline 13
[Credential-related source omitted] - Network accessline 17
# langfuse: https://cloud.langfuse.com/ - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted]
skills/eino/references/docs_examples/quickstart/eino_assistant/.gitignore
- Network accessline 1
### JetBrains template # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - Network accessline 2
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 .idea/ - Network accessline 3
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - Network accessline 80
### GoLand template # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - Network accessline 82
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
skills/eino/references/docs_examples/quickstart/eino_assistant/Dockerfile
skills/eino/references/docs_examples/quickstart/eino_assistant/README.md
- Network accessline 3
### 文档地址 [eino 实践教程](https://www.cloudwego.io/zh/docs/eino/overview/bytedance_eino_practice/) - Network accessline 4
[eino 实践教程](https://www.cloudwego.io/zh/docs/eino/overview/bytedance_eino_practice/) - Network accessline 9
# Notice: 如果本地已经安装了 redis,则需要先停止本地的 redis 容器,再执行上述命令,否则端口冲突会导致启动失败 docker-compose up -d # 可以在 http://127.0.0.1:8001 看到 redis 的 web 界面 - Network accessline 10
docker-compose up -d # 可以在 http://127.0.0.1:8001 看到 redis 的 web 界面 # redis 监听在 127.0.0.1:6379, 使用 redis-cli ping 可测试 - Network accessline 11
# 可以在 http://127.0.0.1:8001 看到 redis 的 web 界面 - Network accessline 19
所需的大模型和 API Key. 豆包大模型地址: https://console.volcengine.com/ark/region:ark+cn-beijing/model - Network accessline 20
豆包大模型地址: https://console.volcengine.com/ark/region:ark+cn-beijing/model - Network accessline 21
> ChatModel 推荐: [Doubao-pro-4k (functioncall)](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-pro-4k) - Network accessline 22
> EmbeddingModel 推荐: [Doubao-embedding-large](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-embedding-large) - Access to secretsline 26
[Credential-related source omitted] - Network accessline 33
可观测能力的自动集成,仅需配置下方环境变量,即可访问APMPlus查看观测数据: https://console.volcengine.com/apmplus-server - Access to secretsline 35
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 56
访问 http://127.0.0.1:8080/ 即可看到效果
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/agent.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 67
[Credential-related source omitted] - Network accessline 70
region = "cn-beijing" } fmt.Println("[eino agent] INFO: use apmplus as callback, watch at: https://console.volcengine.com/apmplus-server") - Network accessline 71
} fmt.Println("[eino agent] INFO: use apmplus as callback, watch at: https://console.volcengine.com/apmplus-server") cbh, _, err := apmplus.NewApmplusHandler(&apmplus.Config{ - Network accessline 72
fmt.Println("[eino agent] INFO: use apmplus as callback, watch at: https://console.volcengine.com/apmplus-server") - Access to secretsline 75
[Credential-related source omitted] - Network accessline 86
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Network accessline 87
fmt.Println("[eino agent] INFO: use langfuse as callback, watch at: https://cloud.langfuse.com") - Network accessline 88
cbh, _ := langfuse.NewLangfuseHandler(&langfuse.Config{ Host: "https://cloud.langfuse.com", PublicKey: os.Getenv("LANGFUSE_PUBLIC_KEY"), - Network accessline 89
Host: "https://cloud.langfuse.com", - Access to secretsline 90
[Credential-related source omitted] - Access to secretsline 91
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted]
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/server.go
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/web/index.html
- Network accessline 5
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Eino Agent Chat</title> <script src="https://cdn.tailwindcss.com"></script> - Network accessline 6
<title>Eino Agent Chat</title> <script src="https://cdn.tailwindcss.com"></script> <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script> - Network accessline 7
<script src="https://cdn.tailwindcss.com"></script> - Network accessline 8
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script> - Network accessline 9
<script src="https://cdn.jsdelivr.net/npm/typed.js@2.0.12"></script> - Network accessline 10
<script src="https://cdn.jsdelivr.net/npm/uuid@latest/dist/umd/uuidv4.min.js"></script> - Network accessline 11
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.min.js"></script> - Network accessline 12
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/github-markdown-css/github-markdown.css"> - Network accessline 13
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism.css">
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagent/agent/web/script.js
- Executable scriptline 1
Executable file - Network accessline 17
cancelButton.id = 'cancel-button'; cancelButton.className = 'w-8 h-8 rounded-full bg-red-500 text-white flex items-center justify-center hover:bg-red-600 hidden absolute left-1/2 -translate-x-1/2 -top-10'; cancelButton.innerHTML = ' - Network accessline 18
cancelButton.className = 'w-8 h-8 rounded-full bg-red-500 text-white flex items-center justify-center hover:bg-red-600 hidden absolute left-1/2 -translate-x-1/2 -top-10'; cancelButton.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" - Network accessline 19
cancelButton.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="1 - Network accessline 235
async function deleteConversation(id, element) { try { const response = await fetch(`/agent/api/history?id=${id}`, { - Network accessline 236
try { const response = await fetch(`/agent/api/history?id=${id}`, { method: 'DELETE' - Network accessline 237
const response = await fetch(`/agent/api/history?id=${id}`, { - Network accessline 257
async function loadConversation(id) { try { const response = await fetch(`/agent/api/history?id=${id}`); - Network accessline 258
try { const response = await fetch(`/agent/api/history?id=${id}`); const data = await response.json(); - Network accessline 259
const response = await fetch(`/agent/api/history?id=${id}`); - Network accessline 348
const response = await fetch(`/agent/api/chat?id=${chatId}&message=${encodeURIComponent(message)}`, { - Network accessline 467
fetch('/agent/api/history') - Network accessline 474
const loadPromises = data.ids.map(id => fetch(`/agent/api/history?id=${id}`) - Network accessline 475
fetch(`/agent/api/history?id=${id}`)
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagent/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted]
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagent/task/server.go
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagent/task/web/index.html
- Network accessline 5
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Task Manager</title> <script src="https://cdn.tailwindcss.com"></script> - Network accessline 6
<title>Task Manager</title> <script src="https://cdn.tailwindcss.com"></script> </head> - Network accessline 7
<script src="https://cdn.tailwindcss.com"></script>
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagent/task/web/script.js
- Executable scriptline 1
Executable file - Network accessline 110
const params = getQueryParams(); try { const response = await fetch('/task/api', { - Network accessline 111
try { const response = await fetch('/task/api', { method: 'POST', - Network accessline 112
const response = await fetch('/task/api', { - Network accessline 262
try { const response = await fetch('/task/api', { - Network accessline 263
const response = await fetch('/task/api', { - Network accessline 289
try { const response = await fetch('/task/api', { - Network accessline 290
const response = await fetch('/task/api', { - Network accessline 316
try { const response = await fetch('/task/api', { - Network accessline 317
const response = await fetch('/task/api', { - Network accessline 354
try { const response = await fetch('/task/api', { - Network accessline 355
const response = await fetch('/task/api', {
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/einoagentcli/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Possible obfuscationline 78
fmt.Printf("🧑<U+200D> : ") - Access to secretsline 117
[Credential-related source omitted] - Access to secretsline 139
[Credential-related source omitted] - Network accessline 142
region = "cn-beijing" } fmt.Println("[eino agent] INFO: use apmplus as callback, watch at: https://console.volcengine.com/apmplus-server") - Network accessline 143
} fmt.Println("[eino agent] INFO: use apmplus as callback, watch at: https://console.volcengine.com/apmplus-server") cbh, _, err := apmplus.NewApmplusHandler(&apmplus.Config{ - Network accessline 144
fmt.Println("[eino agent] INFO: use apmplus as callback, watch at: https://console.volcengine.com/apmplus-server") - Access to secretsline 147
[Credential-related source omitted] - Network accessline 157
[Credential-related source omitted] - Access to secretsline 157
[Credential-related source omitted] - Network accessline 158
fmt.Println("[eino agent] INFO: use langfuse as callback, watch at: https://cloud.langfuse.com") - Network accessline 159
cbh, _ := langfuse.NewLangfuseHandler(&langfuse.Config{ Host: "https://cloud.langfuse.com", PublicKey: os.Getenv("LANGFUSE_PUBLIC_KEY"), - Network accessline 160
Host: "https://cloud.langfuse.com", - Access to secretsline 161
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Network accessline 172
[Credential-related source omitted] - Access to secretsline 172
[Credential-related source omitted] - Network accessline 173
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/knowledgeindexing/eino-docs/_index.md
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/knowledgeindexing/eino-docs/agent_llm_with_tools.md
- Network accessline 5
> 💡 > 本文中示例的代码片段详见:[eino-examples/quickstart/taskagent](https://github.com/cloudwego/eino-examples/blob/master/quickstart/taskagent/main.go) - Network accessline 6
> 本文中示例的代码片段详见:[eino-examples/quickstart/taskagent](https://github.com/cloudwego/eino-examples/blob/master/quickstart/taskagent/main.go) - Access to secretsline 115
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted]
skills/eino/references/docs_examples/quickstart/eino_assistant/cmd/knowledgeindexing/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 41
[Credential-related source omitted] - Network accessline 44
func main() { cozeloopApiToken := os.Getenv("COZELOOP_API_TOKEN") cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e - Access to secretsline 45
[Credential-related source omitted] - Network accessline 46
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/einoagent/embedding.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 31
[Credential-related source omitted]
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/einoagent/flow.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/einoagent/lambda_func.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/einoagent/model.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 31
[Credential-related source omitted]
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/einoagent/orchestration.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/einoagent/prompt.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/einoagent/retriever.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/einoagent/tools_node.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/einoagent/types.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/embedding.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 29
config := &ark.EmbeddingConfig{ BaseURL: "https://ark.cn-beijing.volces.com/api/v3", - Network accessline 30
BaseURL: "https://ark.cn-beijing.volces.com/api/v3", - Access to secretsline 31
[Credential-related source omitted]
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/indexer.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/loader.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/orchestration.go
skills/eino/references/docs_examples/quickstart/eino_assistant/eino/knowledgeindexing/transformer.go
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/env/env.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted]
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/mem/simple.go
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/redis/redis.go
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/einotool.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 70
var ( EinoRepo = map[string]string{ "eino": "https://github.com/cloudwego/eino", - Network accessline 71
EinoRepo = map[string]string{ "eino": "https://github.com/cloudwego/eino", "eino-ext": "https://github.com/cloudwego/eino-ext", - Network accessline 72
"eino": "https://github.com/cloudwego/eino", - Network accessline 73
"eino-ext": "https://github.com/cloudwego/eino-ext", - Network accessline 74
"eino-examples": "https://github.com/cloudwego/eino-examples", - Network accessline 77
EinoDoc = map[string]string{ "eino_index": "https://www.cloudwego.io/zh/docs/eino/", - Network accessline 78
"eino_index": "https://www.cloudwego.io/zh/docs/eino/", - Network accessline 79
"quickstart": "https://www.cloudwego.io/zh/docs/eino/quick_start/", - Network accessline 80
"graph": "https://www.cloudwego.io/zh/docs/eino/core_modules/chain_and_graph_orchestration/", - Network accessline 81
"agent": "https://www.cloudwego.io/zh/docs/eino/core_modules/flow_integration_components/", - Network accessline 82
"components": "https://www.cloudwego.io/zh/docs/eino/core_modules/components/", - Network accessline 83
"integrate": "https://www.cloudwego.io/zh/docs/eino/ecosystem_integration/", - Network accessline 86
EinoExample = map[string][]string{ "agent": {"https://github.com/cloudwego/eino-examples/tree/main/flow/agent/react"}, - Network accessline 87
"agent": {"https://github.com/cloudwego/eino-examples/tree/main/flow/agent/react"}, - Network accessline 88
"components": {"https://github.com/cloudwego/eino-examples/tree/main/components"}, - Network accessline 89
"graph": {"https://github.com/cloudwego/eino-examples/tree/main/compose/graph/tool_call_agent.go"}, - Network accessline 90
"quickstart": {"https://github.com/cloudwego/eino-examples/tree/main/quickstart"},
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/http_agent/README.md
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/http_agent/client/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 22
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 23
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 24
* http://www.apache.org/licenses/LICENSE-2.0 - Possible obfuscationline 59
fmt.Printf("🧑<U+200D> : ") - Network accessline 75
func sendMessage(id, message string) { baseURL := "http://127.0.0.1:8888/chat" - Network accessline 76
baseURL := "http://127.0.0.1:8888/chat"
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/http_agent/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 47
[Credential-related source omitted] - Network accessline 48
[Credential-related source omitted] - Network accessline 49
panic("model and apikey are required, you may get doubao model from: https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-pro-32k")
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/react_agent/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 41
// you can get model from: https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-pro-32k
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/einotool/templates/simple_llm/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 44
[Credential-related source omitted] - Network accessline 45
[Credential-related source omitted] - Network accessline 46
panic("model and apikey are required, you may get doubao model from: https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-pro-32k") - Network accessline 94
// replace with your model: https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-pro-32k
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/gitclone/gitclone.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 143
// 完整 HTTPS 格式: https://domain/group/repo
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/open/open.go
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/task/README.md
- Network accessline 33
curl -X POST http://127.0.0.1:8080/task/api \ - Network accessline 48
curl -X POST http://127.0.0.1:8080/task/api \ - Network accessline 62
curl -X POST http://127.0.0.1:8080/task/api \ - Network accessline 75
curl -X POST http://127.0.0.1:8080/task/api \ - Network accessline 86
curl -X POST http://127.0.0.1:8080/task/api \
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/task/storage.go
skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/tool/task/task.go
skills/eino/references/docs_examples/quickstart/todoagent/main.go
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Access to secretsline 38
[Credential-related source omitted] - Network accessline 42
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Network accessline 43
cozeloopWorkspaceID := os.Getenv("COZELOOP_WORKSPACE_ID") // use cozeloop trace, from https://loop.coze.cn/open/docs/cozeloop/go-sdk#4a8c980e
skills/eino/references/overview.md
- Network accessline 13
### 官方资源 - **GitHub**: https://github.com/cloudwego/eino - Network accessline 14
- **GitHub**: https://github.com/cloudwego/eino - Network accessline 15
- **文档**: https://www.cloudwego.io/docs/eino/ - Network accessline 16
- **示例**: https://github.com/cloudwego/eino-examples - Network accessline 17
- **扩展**: https://github.com/cloudwego/eino-ext - Access to secretsline 61
[Credential-related source omitted] - Network accessline 169
- 定义组件抽象(ChatModel、Tool、Retriever、Embedding 等) - 官方实现:OpenAI、Claude、Gemini、Ark、Ollama、Elasticsearch 等 - 扩展库:[eino-ext](https://github.com/cloudwego/eino-ext) - Network accessline 171
- 扩展库:[eino-ext](https://github.com/cloudwego/eino-ext) - Network accessline 384
### 官方渠道 - **GitHub Issues**: https://github.com/cloudwego/eino/issues - Network accessline 385
- **GitHub Issues**: https://github.com/cloudwego/eino/issues - Network accessline 386
- **文档**: https://www.cloudwego.io/docs/eino/ - Network accessline 389
### 贡献指南 - **成员资格**: [COMMUNITY MEMBERSHIP](https://github.com/cloudwego/community/blob/main/COMMUNITY_MEMBERSHIP.md) - Network accessline 390
- **成员资格**: [COMMUNITY MEMBERSHIP](https://github.com/cloudwego/community/blob/main/COMMUNITY_MEMBERSHIP.md) - Network accessline 424
- [Eino GitHub](https://github.com/cloudwego/eino) - Network accessline 425
- [Eino 文档](https://www.cloudwego.io/docs/eino/) - Network accessline 426
- [Eino 示例](https://github.com/cloudwego/eino-examples) - Network accessline 427
- [Eino 扩展](https://github.com/cloudwego/eino-ext) - Network accessline 428
- [CloudWeGo 官网](https://www.cloudwego.io/)
skills/eino/references/readme.md
- Network accessline 3
 - Network accessline 4
[](https://github.com/cloudwego/eino/releases) - Network accessline 5
[](https://www.cloudwego.io/) - Network accessline 6
[](https://github.com/cloudwego/eino/blob/main/LICENSE) - Network accessline 7
[](https://goreportcard.com/report/github.com/cloudwego/eino) - Network accessline 8
[](https://github.com/cloudwego/kitex/eino) - Network accessline 9
[](https://github.com/cloudwego/eino/issues?q=is%3Aissue+is%3Aclosed) - Network accessline 10
 - Network accessline 11
 - Network accessline 19
Eino provides: - **[Components](https://github.com/cloudwego/eino-ext)**: reusable building blocks like `ChatModel`, `Tool`, `Retriever`, and `ChatTemplate`, with official implementations for OpenAI, Ollama, and more. - Network accessline 20
- **[Components](https://github.com/cloudwego/eino-ext)**: reusable building blocks like `ChatModel`, `Tool`, `Retriever`, and `ChatTemplate`, with official implementations for OpenAI, Ollama, and more. - Network accessline 21
- **Agent Development Kit (ADK)**: build AI agents with tool use, multi-agent coordination, context management, interrupt/resume for human-in-the-loop, and ready-to-use agent patterns. - **Composition**: connect components into graphs and w - Network accessline 23
- **[Examples](https://github.com/cloudwego/eino-examples)**: working code for common patterns and real-world use cases. - Access to secretsline 36
[Credential-related source omitted] - Network accessline 69
→ [ChatModelAgent examples](https://github.com/cloudwego/eino-examples/tree/main/adk/intro) · [docs](https://www.cloudwego.io/docs/eino/core_modules/eino_adk/agent_implementation/chat_model/) - Network accessline 92
→ [DeepAgent example](https://github.com/cloudwego/eino-examples/tree/main/adk/multiagent/deep) · [docs](https://www.cloudwego.io/docs/eino/core_modules/eino_adk/agent_implementation/deepagents/) - Network accessline 130
→ [GraphTool examples](https://github.com/cloudwego/eino-examples/tree/main/adk/common/tool/graphtool) · [compose docs](https://www.cloudwego.io/docs/eino/core_modules/chain_and_graph_orchestration/) - Network accessline 138
→ [eino-ext](https://github.com/cloudwego/eino-ext) - Network accessline 144
→ [docs](https://www.cloudwego.io/docs/eino/core_modules/chain_and_graph_orchestration/stream_programming_essentials/) - Network accessline 150
→ [docs](https://www.cloudwego.io/docs/eino/core_modules/chain_and_graph_orchestration/callback_manual/) - Network accessline 156
→ [docs](https://www.cloudwego.io/docs/eino/core_modules/eino_adk/agent_hitl/) · [examples](https://github.com/cloudwego/eino-examples/tree/main/adk/human-in-the-loop) - Network accessline 166
- [EinoExt](https://github.com/cloudwego/eino-ext): Component implementations, callback handlers, usage examples, evaluators, prompt optimizers - Network accessline 168
- [Eino Devops](https://github.com/cloudwego/eino-ext/tree/main/devops): Visualized development and debugging - Network accessline 170
- [EinoExamples](https://github.com/cloudwego/eino-examples): Example applications and best practices - Network accessline 174
- [Eino User Manual](https://www.cloudwego.io/zh/docs/eino/) - Network accessline 175
- [Eino: Quick Start](https://www.cloudwego.io/zh/docs/eino/quick_start/) - Network accessline 195
If you discover a potential security issue, notify Bytedance Security via the [security center](https://security.bytedance.com/src) or [vulnerability reporting email](sec@bytedance.com). - Network accessline 199
## Contact - Membership: [COMMUNITY MEMBERSHIP](https://github.com/cloudwego/community/blob/main/COMMUNITY_MEMBERSHIP.md) - Network accessline 200
- Membership: [COMMUNITY MEMBERSHIP](https://github.com/cloudwego/community/blob/main/COMMUNITY_MEMBERSHIP.md) - Network accessline 201
- Issues: [Issues](https://github.com/cloudwego/eino/issues) - Network accessline 202
- Lark: Scan the QR code below with [Feishu](https://www.feishu.cn/en/) to join the CloudWeGo/eino user group.
skills/gorm/references/advanced_query.md
- Network accessline 141
GORM enhances the readability and maintainability of SQL queries by supporting named arguments. This feature allows for clearer and more organized query construction, especially in complex queries with multiple parameters. Named arguments c
skills/gorm/references/changelog.md
- Network accessline 29
[GORM V1 Docs](https://v1.gorm.io) - Network accessline 35
* Soft Delete's will only check `deleted_at IS NULL` * New ToDBName logic Common initialisms from [golint](https://github.com/golang/lint/blob/master/lint.go#L702) like `HTTP`, `URI` was converted to lowercase, so `HTTP`'s db name is `htt - Network accessline 36
* New ToDBName logic Common initialisms from [golint](https://github.com/golang/lint/blob/master/lint.go#L702) like `HTTP`, `URI` was converted to lowercase, so `HTTP`'s db name is `http`, but not `h_t_t_p`, but for some other initialisms - Network accessline 37
Common initialisms from [golint](https://github.com/golang/lint/blob/master/lint.go#L702) like `HTTP`, `URI` was converted to lowercase, so `HTTP`'s db name is `http`, but not `h_t_t_p`, but for some other initialisms not in the list, like
skills/gorm/references/connecting_to_the_database.md
- Network accessline 16
func main() { // refer https://github.com/go-sql-driver/mysql#dsn-data-source-name for details - Network accessline 17
// refer https://github.com/go-sql-driver/mysql#dsn-data-source-name for details - Network accessline 23
{% note warn %} **NOTE:** To handle `time.Time` correctly, you need to include `parseTime` as a parameter. ([more parameters](https://github.com/go-sql-driver/mysql#parameters)) - Network accessline 24
**NOTE:** To handle `time.Time` correctly, you need to include `parseTime` as a parameter. ([more parameters](https://github.com/go-sql-driver/mysql#parameters)) To fully support UTF-8 encoding, you need to change `charset=utf8` to `charset - Network accessline 25
To handle `time.Time` correctly, you need to include `parseTime` as a parameter. ([more parameters](https://github.com/go-sql-driver/mysql#parameters)) - Network accessline 26
To fully support UTF-8 encoding, you need to change `charset=utf8` to `charset=utf8mb4`. See [this article](https://mathiasbynens.be/notes/mysql-utf8mb4) for a detailed explanation - Network accessline 29
MySQL Driver provides a [few advanced configurations](https://github.com/go-gorm/mysql) which can be used during initialization, for example: - Network accessline 53
db, err := gorm.Open(mysql.New(mysql.Config{ DriverName: "my_mysql_driver", DSN: "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local", // data source name, refer https://github.com/go-sql-driver/mysql#dsn-data-sour - Network accessline 54
DriverName: "my_mysql_driver", DSN: "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local", // data source name, refer https://github.com/go-sql-driver/mysql#dsn-data-source-name }), &gorm.Config{}) - Network accessline 55
DSN: "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local", // data source name, refer https://github.com/go-sql-driver/mysql#dsn-data-source-name - Network accessline 88
We are using [pgx](https://github.com/jackc/pgx) as postgres's database/sql driver, it enables prepared statement cache by default, to disable it: - Network accessline 91
// https://github.com/go-gorm/postgres - Network accessline 143
We are using [gaussdb-go](https://github.com/HuaweiCloudDeveloper/gaussdb-go) as gaussdb's database/sql driver, it enables prepared statement cache by default, to disable it: - Network accessline 146
// https://github.com/go-gorm/gaussdb - Network accessline 188
The GORM Driver for Oracle provides support for Oracle Database, enabling full compatibility with GORM's ORM capabilities. It is built on top of the [Go Driver for Oracle (Godror)](https://github.com/godror/godror) and supports key features - Network accessline 192
To use ODPI-C with Godror, you’ll need to install the Oracle Instant Client on your system. Follow the steps on [this page](https://odpi-c.readthedocs.io/en/latest/user_guide/installation.html) to complete the installation. - Network accessline 232
import ( "gorm.io/driver/sqlite" // Sqlite driver based on CGO // "github.com/glebarez/sqlite" // Pure go SQLite driver, checkout https://github.com/glebarez/sqlite for details - Network accessline 233
"gorm.io/driver/sqlite" // Sqlite driver based on CGO // "github.com/glebarez/sqlite" // Pure go SQLite driver, checkout https://github.com/glebarez/sqlite for details "gorm.io/gorm" - Network accessline 234
// "github.com/glebarez/sqlite" // Pure go SQLite driver, checkout https://github.com/glebarez/sqlite for details - Network accessline 242
{% note warn %} **NOTE:** You can also use `file::memory:?cache=shared` instead of a path to a file. This will tell SQLite to use a temporary database in system memory. (See [SQLite docs](https://www.sqlite.org/inmemorydb.html) for this) - Network accessline 243
**NOTE:** You can also use `file::memory:?cache=shared` instead of a path to a file. This will tell SQLite to use a temporary database in system memory. (See [SQLite docs](https://www.sqlite.org/inmemorydb.html) for this) - Network accessline 265
- You can use `gorm:"primaryKey;default:auto_random()"` tag to use [`AUTO_RANDOM`](https://docs.pingcap.com/tidb/stable/auto-random) feature for TiDB. - Network accessline 266
- TiDB supported [`SAVEPOINT`](https://docs.pingcap.com/tidb/stable/sql-statement-savepoint) from `v6.2.0`, please notice the version of TiDB when you use this feature. - Network accessline 267
- TiDB supported [`FOREIGN KEY`](https://docs.pingcap.com/tidb/dev/foreign-key) from `v6.6.0`, please notice the version of TiDB when you use this feature. - Network accessline 306
https://github.com/go-gorm/clickhouse - Network accessline 338
GORM using [database/sql](https://pkg.go.dev/database/sql) to maintain connection pool
skills/gorm/references/create.md
- Network accessline 250
Then the default value *will be used* when inserting into the database for [zero-value](https://tour.golang.org/basics/12) fields - Network accessline 279
{% note warn %} **NOTE** **SQLite** doesn't support some records are default values when batch insert. See [SQLite Insert stmt](https://www.sqlite.org/lang_insert.html). For example: - Network accessline 281
See [SQLite Insert stmt](https://www.sqlite.org/lang_insert.html). For example: - Network accessline 302
You can see more info in [issues#6335](https://github.com/go-gorm/gorm/issues/6335)
skills/gorm/references/data_types.md
- Network accessline 6
GORM provides few interfaces that allow users to define well-supported customized data types for GORM, takes [json](https://github.com/go-gorm/datatypes/blob/master/json.go) as an example - Network accessline 12
The customized data type has to implement the [Scanner](https://pkg.go.dev/database/sql#Scanner) and [Valuer](https://pkg.go.dev/database/sql/driver#Valuer) interfaces, so GORM knowns to how to receive/save it into the database - Network accessline 92
func (JSON) GormDBDataType(db *gorm.DB, field *schema.Field) string { // use field.Tag, field.TagSettings gets field's tags // checkout https://github.com/go-gorm/gorm/blob/master/schema/field.go for all options - Network accessline 94
// checkout https://github.com/go-gorm/gorm/blob/master/schema/field.go for all options - Network accessline 205
Checkout [JSON](https://github.com/go-gorm/datatypes/blob/master/json.go) and [SQL Builder](sql_builder.html#clauses) for details, the following is an example of usage: - Network accessline 230
We created a Github repo for customized data types collections [https://github.com/go-gorm/datatypes](https://github.com/go-gorm/datatypes), pull request welcome ;)
skills/gorm/references/dbresolver.md
skills/gorm/references/error_handling.md
- Network accessline 137
For a complete list of errors that GORM can return, refer to the [Errors List](https://github.com/go-gorm/gorm/blob/master/errors.go) in GORM's documentation.
skills/gorm/references/generic_interface.md
- Network accessline 6
GORM provides the method `DB` which returns a generic database interface [\*sql.DB](https://pkg.go.dev/database/sql#DB) from the current `*gorm.DB`
skills/gorm/references/hints.md
- Network accessline 8
https://github.com/go-gorm/hints
skills/gorm/references/logger.md
- Network accessline 8
Gorm has a [default logger implementation](https://github.com/go-gorm/gorm/blob/master/logger/logger.go), it will print Slow SQL and happening errors by default - Network accessline 55
Refer to GORM's [default logger](https://github.com/go-gorm/gorm/blob/master/logger/logger.go) for how to define your own one
skills/gorm/references/method_chaining.md
- Network accessline 39
For a comprehensive list, visit [GORM Chainable API](https://github.com/go-gorm/gorm/blob/master/chainable_api.go). Also, the [SQL Builder](sql_builder.html) documentation offers more details about `Clauses`. - Network accessline 56
For the full list, refer to [GORM Finisher API](https://github.com/go-gorm/gorm/blob/master/finisher_api.go).
skills/gorm/references/migration.md
- Network accessline 161
- `Query` is a [subquery](https://gorm.io/docs/advanced_query.html#SubQuery), which is required. - Network accessline 270
[Atlas](https://atlasgo.io) is an open-source database migration tool that has an official integration with GORM. - Network accessline 272
While GORM's `AutoMigrate` feature works in most cases, at some point you may need to switch to a [versioned migrations](https://atlasgo.io/concepts/declarative-vs-versioned#versioned-migrations) strategy. - Network accessline 276
Atlas can automatically plan database schema migrations for developers using the official [GORM Provider](https://github.com/ariga/atlas-provider-gorm). After configuring the provider you can automatically plan migrations by running: - Network accessline 281
To learn how to use Atlas with GORM, check out the [official documentation](https://atlasgo.io/guides/orms/gorm).
skills/gorm/references/models.md
- Network accessline 10
Models are defined using normal structs. These structs can contain fields with basic Go types, pointers or aliases of these types, or even custom types, as long as they implement the [Scanner](https://pkg.go.dev/database/sql/?tab=doc#Scanne
skills/gorm/references/performance.md
- Network accessline 35
{% note warn %} **NOTE** Also refer how to enable interpolateparams for MySQL to reduce roundtrip https://github.com/go-sql-driver/mysql#interpolateparams - Network accessline 36
**NOTE** Also refer how to enable interpolateparams for MySQL to reduce roundtrip https://github.com/go-sql-driver/mysql#interpolateparams
skills/gorm/references/prometheus.md
- Network accessline 6
GORM provides Prometheus plugin to collect [DBStats](https://pkg.go.dev/database/sql?tab=doc#DBStats) or user-defined metrics - Network accessline 8
https://github.com/go-gorm/prometheus - Network accessline 47
GORM provides an example for how to collect MySQL Status as metrics, check it out [prometheus.MySQL](https://github.com/go-gorm/prometheus/blob/master/mysql.go)
skills/gorm/references/query.md
- Network accessline 238
{% note warn %} **NOTE** When querying with struct, GORM will only query with non-zero fields, that means if your field's value is `0`, `''`, `false` or other [zero values](https://tour.golang.org/basics/12), it won't be used to build query - Network accessline 239
**NOTE** When querying with struct, GORM will only query with non-zero fields, that means if your field's value is `0`, `''`, `false` or other [zero values](https://tour.golang.org/basics/12), it won't be used to build query conditions, for
skills/gorm/references/security.md
- Dangerous shell operationline 80
//Despite being parameterized in Exec() function, gorm.Expr is still injectable
skills/gorm/references/sharding.md
- Network accessline 8
https://github.com/go-gorm/sharding - Network accessline 19
Config the sharding middleware, register the tables which you want to shard. See [Godoc](https://pkg.go.dev/gorm.io/sharding) for config details. - Network accessline 73
The full example is [here](https://github.com/go-gorm/sharding/tree/main/examples).
skills/gorm/references/sql_builder.md
- Network accessline 84
GORM supports named arguments with [`sql.NamedArg`](https://tip.golang.org/pkg/database/sql/#NamedArg), `map[string]interface{}{}` or struct, for example: - Network accessline 118
GORM supports named arguments with [`sql.NamedArg`](https://tip.golang.org/pkg/database/sql/#NamedArg), `map[string]interface{}{}` or struct, for example: - Network accessline 314
You can define your own `Clause` and use it with GORM, it needs to implements [Interface](https://pkg.go.dev/gorm.io/gorm/clause?tab=doc#Interface) - Network accessline 316
Check out [examples](https://github.com/go-gorm/gorm/tree/master/clause) for reference - Network accessline 330
Which is supported because GORM allows database driver register Clause Builder to replace the default one, take the [Limit](https://github.com/go-gorm/sqlserver/blob/512546241200023819d2e7f8f2f91d7fb3a52e42/sqlserver.go#L45) as example - Network accessline 334
GORM defined [Many Clauses](https://github.com/go-gorm/gorm/tree/master/clause), and some clauses provide advanced options can be used for your application - Network accessline 345
GORM provides interface [StatementModifier](https://pkg.go.dev/gorm.io/gorm?tab=doc#StatementModifier) allows you modify statement to match your requirements, take [Hints](hints.html) as example
skills/gorm/references/the_generics_way.md
- Network accessline 215
In the coming updates, we’ll continue refining the generics API, enhancing the CLI tool, and updating the official [https://gorm.io](https://gorm.io) documentation accordingly—aiming to provide a clearer, more efficient developer experience
skills/gorm/references/v2_release_note.md
- Network accessline 27
* GORM's developments moved to [github.com/go-gorm](https://github.com/go-gorm), and its import path changed to `gorm.io/gorm`, for previous projects, you can keep using `github.com/jinzhu/gorm` [GORM V1 Document](https://v1.gorm.io/) - Network accessline 28
* Database drivers have been split into separate projects, e.g: [github.com/go-gorm/sqlite](https://github.com/go-gorm/sqlite), and its import path also changed to `gorm.io/driver/sqlite` - Network accessline 408
The following takes JSON as an example (which supports SQLite, MySQL, Postgres, refer: https://github.com/go-gorm/datatypes/blob/master/json.go) - Network accessline 495
We are trying to list big breaking changes or those changes can't be caught by the compilers, please create an issue or pull request [here](https://github.com/go-gorm/gorm.io) if you found any unlisted breaking changes
skills/gorm/references/write_driver.md
- Network accessline 103
For inspiration and guidance, examining the [MySQL Driver](https://github.com/go-gorm/mysql) can be helpful. This driver demonstrates how the `Dialector` interface is implemented to suit the specific needs of the MySQL database.
skills/gorm/references/write_plugins.md
- Network accessline 117
GORM comes with a set of predefined callbacks that drive its standard features. It's recommended to review these [defined callbacks](https://github.com/go-gorm/gorm/blob/master/callbacks/callbacks.go) before creating custom plugins or addit
skills/hyperf/references/zh-cn/README.md
- Network accessline 3
Hyperf 是一个高性能、高灵活性的渐进式 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 `PHP-FPM` 的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,标准组件均基于 [PSR 标准](https://www.php-fig.org/psr) 实现,基于强大的依赖注入设计,保证了绝大部分组件或类都是 `可替换` 与 `可复用` 的。 - Network accessline 17
- 对于超高速,我们基于 Swoole 协程并在框架设计上进行大量的优化以确保超高性能的输出。 - 对于灵活性,我们基于 Hyperf 强大的依赖注入组件,组件均基于 [PSR 标准](https://www.php-fig.org/psr) 的契约和由 Hyperf 定义的契约实现,达到框架内的绝大部分的组件或类都是可替换的。 - Network accessline 18
- 对于灵活性,我们基于 Hyperf 强大的依赖注入组件,组件均基于 [PSR 标准](https://www.php-fig.org/psr) 的契约和由 Hyperf 定义的契约实现,达到框架内的绝大部分的组件或类都是可替换的。
skills/hyperf/references/zh-cn/amqp.md
- Network accessline 3
[hyperf/amqp](https://github.com/hyperf/amqp) 是实现 AMQP 标准的组件,主要适用于对 RabbitMQ 的使用。 - Network accessline 282
另外,AMQP 需要下载 [延时插件](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases),并激活才能正常使用 - Network accessline 285
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez
skills/hyperf/references/zh-cn/annotation.md
- Network accessline 163
[Coroutine.php](https://github.com/hyperf/biz-skeleton/blob/master/app/Kernel/Context/Coroutine.php) - Network accessline 170
* This file is part of Hyperf. * * @link https://www.hyperf.io - Network accessline 171
* * @link https://www.hyperf.io * @document https://hyperf.wiki - Network accessline 172
* @link https://www.hyperf.io - Network accessline 173
* @document https://hyperf.wiki - Network accessline 174
* @contact group@hyperf.io * @license https://github.com/hyperf/hyperf/blob/master/LICENSE */ - Network accessline 175
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE - Network accessline 231
[Coroutine.php](https://github.com/hyperf/biz-skeleton/blob/master/app/Kernel/ClassMap/Coroutine.php) - Network accessline 240
* This file is part of Hyperf. * * @link https://www.hyperf.io - Network accessline 241
* * @link https://www.hyperf.io * @document https://hyperf.wiki - Network accessline 242
* @link https://www.hyperf.io - Network accessline 243
* @document https://hyperf.wiki - Network accessline 244
* @contact group@hyperf.io * @license https://github.com/hyperf/hyperf/blob/master/LICENSE */ - Network accessline 245
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
skills/hyperf/references/zh-cn/async-queue.md
- Network accessline 319
$this->service->push([ 'group@hyperf.io', 'https://doc.hyperf.io', - Network accessline 320
'group@hyperf.io', 'https://doc.hyperf.io', 'https://www.hyperf.io', - Network accessline 321
'https://doc.hyperf.io', - Network accessline 322
'https://www.hyperf.io', - Network accessline 387
$this->service->example([ 'group@hyperf.io', 'https://doc.hyperf.io', - Network accessline 388
'group@hyperf.io', 'https://doc.hyperf.io', 'https://www.hyperf.io', - Network accessline 389
'https://doc.hyperf.io', - Network accessline 390
'https://www.hyperf.io',
skills/hyperf/references/zh-cn/awesome-components.md
- Network accessline 10
如果您开发的协程组件适配了 Hyperf,那么您可以直接对 [hyperf/hyperf](https://github.com/hyperf/hyperf) 项目的 `master` 分支发起您的 `Pull Request`,也就是更改当前页`(zh-cn/awesome-components.md)`。 - Network accessline 20
- [nikic/fastroute](https://github.com/nikic/FastRoute) 一个常用的高速路由 - Network accessline 21
- [lazychanger/urlrewrite](https://github.com/lazychanger/urlrewrite) 一个基于 PSR- 7 与 [nikic/fastroute](https://github.com/nikic/FastRoute) 相同路由规则的 URL 重写工具 - Network accessline 25
- [hyperf/event](https://github.com/hyperf/event) Hyperf 官方提供的基于 PSR-14 的事件管理器 - Network accessline 29
- [hyperf/logger](https://github.com/hyperf/logger) Hyperf 官方提供的基于 PSR-3 的日志管理器,一个基于 monolog 的抽象及封装 - Network accessline 33
- [hyperf/command](https://github.com/hyperf/command) Hyperf 官方提供的基于 [symfony/console](https://github.com/symfony/console) 扩展并支持注解的命令管理组件 - Network accessline 34
- [symfony/console](https://github.com/symfony/console) Symfony 提供的独立命令管理组件 - Network accessline 38
- [hyperf/database](https://github.com/hyperf/database) Hyperf 官方提供的基于 Eloquent 衍生的数据库 ORM,可复用于其它框架 - Network accessline 39
- [hyperf/model-cache](https://github.com/hyperf/model-cache) Hyperf 官方提供的基于 [hyperf/database](https://github.com/hyperf/database) 组件的自动模型缓存组件 - Network accessline 40
- [reasno/fastmongo](https://github.com/Reasno/fastmongo) 基于 `hyperf/gotask` 实现的协程化 `MongoDB` 客户端 - Network accessline 41
- [hyperf-ext/translatable](https://github.com/hyperf-ext/translatable) 为模型提供多语言能力 - Network accessline 42
- [233cy/hyperf-tenant](https://github.com/233cy/hyperf-tenant) 为模型提供多租户字段区分 - Network accessline 46
- [hyperf/elasticsearch](https://github.com/hyperf/elasticsearch) Hyperf 官方提供的 Elasticsearch 协程客户端 - Network accessline 47
- [liangguifeng/hyperf-scout-meilisearch](https://github.com/liangguifeng/hyperf-scout-meilisearch) 适配 hyperf/scout 的 Meilisearch 驱动(参考 laravel/scout)。 - Network accessline 48
- [chungou/elasticsearch](https://github.com/kaychem/hyperf-elasticsearch) 一个简单的 Elasticsearch 构造器 - Network accessline 52
- [hyperf/di](https://github.com/hyperf/di) Hyperf 官方提供的支持注解及 AOP 的依赖注入容器 - Network accessline 53
- [hyperf/pimple](https://github.com/hyperf-cloud/pimple-integration) 基于 `pimple/pimple` 实现的轻量级符合 `PSR11` 规范的容器组件。可以减少其他框架使用 `Hyperf` 组件时的成本 - Network accessline 57
- [hyperf/http-server](https://github.com/hyperf/http-server) Hyperf 官方提供的 HTTP 服务端 - Network accessline 58
- [hyperf/grpc-server](https://github.com/hyperf/grpc-server) Hyperf 官方提供的 GRPC 服务端 - Network accessline 59
- [hyperf/websocket-server](https://github.com/hyperf/websocket-server) Hyperf 官方提供的 WebSocket 服务端 - Network accessline 60
- [hyperf/rpc-server](https://github.com/hyperf/rpc-server) Hyperf 官方提供的通用 RPC 抽象服务端 - Network accessline 64
- [hyperf/consul](https://github.com/hyperf/consul) Hyperf 官方提供的 Consul 协程客户端 - Network accessline 65
- [hyperf/grpc-client](https://github.com/hyperf/grpc-client) Hyperf 官方提供的 gRPC 协程客户端 - Network accessline 66
- [hyperf/etcd](https://github.com/hyperf/etcd) Hyperf 官方提供的 ETCD 协程客户端 - Network accessline 67
- [hyperf/rpc-client](https://github.com/hyperf/rpc-client) Hyperf 官方提供的通用 RPC 抽象协程客户端 - Network accessline 68
- [hyperf/guzzle](https://github.com/hyperf/guzzle) Hyperf 官方提供的 Guzzle HTTP 协程客户端 - Network accessline 69
- [hyperf/redis](https://github.com/hyperf/redis) Hyperf 官方提供的 Redis 协程客户端 - Network accessline 70
- [hyperf/websocket-client](https://github.com/hyperf/websocket-client) Hyperf 官方提供的 WebSocket 协程客户端 - Network accessline 71
- [hyperf/cache](https://github.com/hyperf/cache) Hyperf 官方提供的基于 PSR-16 的缓存协程客户端,支持注解的使用方式 - Network accessline 72
- [friendsofhyperf/http-client](https://github.com/friendsofhyperf/http-client) 基于 Hyperf 的 Guzzle HTTP 协程客户端 - Network accessline 73
- [friendsofhyperf/openai-client](https://github.com/friendsofhyperf/openai-client) 基于 Hyperf 的 OpenAI 客户端 - Network accessline 77
- [hyperf/amqp](https://github.com/hyperf/amqp) Hyperf 官方提供的 AMQP 协程组件 - Network accessline 78
- [hyperf/async-queue](https://github.com/hyperf/async-queue) Hyperf 官方提供的简单的基于 Redis 的异步队列组件 - Network accessline 79
- [hooklife/hyperf-aliyun-amqp](https://github.com/hooklife/hyperf-aliyun-amqp) 使 hyperf/amqp 组件支持阿里云 AMQP - Network accessline 83
- [hyperf/config-apollo](https://github.com/hyperf/config-apollo) Hyperf 官方提供的 Apollo 配置中心接入组件 - Network accessline 84
- [hyperf/config-aliyun-acm](https://github.com/hyperf/config-aliyun-acm) Hyperf 官方提供的阿里云 ACM 应用配置服务接入组件 - Network accessline 85
- [hyperf/config-etcd](https://github.com/hyperf/config-etcd) Hyperf 官方提供的 ETCD 配置中心接入组件 - Network accessline 89
- [hyperf/json-rpc](https://github.com/hyperf/json-rpc) Hyperf 官方提供的 JSON-RPC 协议组件 - Network accessline 90
- [hyperf/rpc-multiplex](https://github.com/hyperf/rpc-multiplex) Hyperf 官方提供的多路复用 RPC 组件 - Network accessline 91
- [hyperf/roc](https://github.com/hyperf/roc) Hyperf 官方提供的 Golang 版本的多路复用 RPC Server 组件 - Network accessline 92
- [limingxinleo/roc-skeleton](https://github.com/limingxinleo/roc-skeleton) Golang 版本多路复用 RPC Server 骨架包 - Network accessline 96
- [hyperf/rate-limit](https://github.com/hyperf/rate-limit) Hyperf 官方提供的基于令牌桶算法的限流组件 - Network accessline 97
- [hyperf/load-balancer](https://github.com/hyperf/load-balancer) Hyperf 官方提供的负载均衡组件 - Network accessline 98
- [hyperf/service-governance](https://github.com/hyperf/service-governance) Hyperf 官方提供的服务治理组件 - Network accessline 99
- [hyperf/tracer](https://github.com/hyperf/tracer) Hyperf 官方提供的 OpenTracing 分布式调用链追踪组件 - [hyperf/circuit-breaker](https://github.com/hyperf/circuit-breaker) Hyperf 官方提供的服务熔断组件 - [pudongping/hyperf-throttle-requests](https://github.com/pudo - Network accessline 100
- [hyperf/circuit-breaker](https://github.com/hyperf/circuit-breaker) Hyperf 官方提供的服务熔断组件 - [pudongping/hyperf-throttle-requests](https://github.com/pudongping/hyperf-throttle-requests) 适配 Hyperf 框架的请求频率限流器。功能类似于 Laravel 框架的 throttle 中间件。 - - Network accessline 101
- [pudongping/hyperf-throttle-requests](https://github.com/pudongping/hyperf-throttle-requests) 适配 Hyperf 框架的请求频率限流器。功能类似于 Laravel 框架的 throttle 中间件。 - Network accessline 102
- [friendsofhyperf/sentry](https://github.com/friendsofhyperf/sentry) 适配 Hyperf 框架的 [Sentry](https://sentry.io) 组件,用于异常监控与性能监控。 - Network accessline 106
- [hyperf/crontab](https://github.com/hyperf/crontab) Hyperf 官方提供的秒级定时任务组件 - Network accessline 110
- [hyperf/snowflake](https://github.com/hyperf/snowflake) Hyperf 官方提供的 Snowflake ID 生成器组件 - Network accessline 111
- [tangwei/snowflake](https://github.com/tw2066/snowflake) 基于`hyperf/snowflake`组件,增强了`工作机器ID`的维护 - Network accessline 115
- [hyperf/swagger](https://github.com/hyperf/swagger) Hyperf 官方提供的 Swagger 文档自动生成组件 (beta) - Network accessline 116
- [tangwei/swagger](https://github.com/tw2066/api-docs) 一个基于 PHP 类型(DTO)自动生成 swagger 文档组件,启动自动扫描、自动生成路由(UI)、注解验证 - Network accessline 120
- [hyperf/graphql](https://github.com/hyperf/graphql) Hyperf 官方提供的 Graphql 服务端组件 (beta) - Network accessline 124
- [hyperf/watcher](zh-cn/watcher.md) 官方热更新组件 - [ha-ni-cc/hyperf-watch](https://github.com/ha-ni-cc/hyperf-watch) 一个基于 Swoole 实现的通用热更新组件 - Network accessline 125
- [ha-ni-cc/hyperf-watch](https://github.com/ha-ni-cc/hyperf-watch) 一个基于 Swoole 实现的通用热更新组件 - Network accessline 126
- [mix-php/swoolefor](https://github.com/mix-php/swoolefor) 一个由 Mixphp 实现的通用热更新组件 - Network accessline 127
- [buexplain/go-watch](https://github.com/buexplain/go-watch) 一个基于 Go 语言实现的通用热更新组件 - Network accessline 128
- [remy/nodemon](https://github.com/remy/nodemon) 一个基于 node.js 实现的通用热更新组件 - Network accessline 134
- [hyperf/task](https://github.com/hyperf/task) Hyperf 官方提供的 Task 组件,对 Swoole 的 Task 机制进行了封装及抽象,提供便捷的注解用法 - Network accessline 135
- [hyperf/gotask](https://github.com/hyperf/gotask) GoTask 通过 Swoole 进程管理功能启动 Go 进程作为 Swoole 主进程边车(Sidecar),利用进程通讯将任务投递给边车处理并接收返回值。可以理解为 Go 版的 Swoole TaskWorker - Network accessline 139
- [firstphp/wsdebug](https://github.com/lamplife/wsdebug) 通过 `WebSocket` 实时观测异常错误的开发调试组件 - Network accessline 140
- [qbhy/hyperf-multi-env](https://github.com/qbhy/hyperf-multi-env) 支持与 laravel 类似的多 env 配置文件功能,比如通过 `APP_ENV=testing` 可以加载 `.env.testing` 配置覆盖默认的 `.env` - Network accessline 141
- [qiutuleng/hyperf-dump-server](https://github.com/qiutuleng/hyperf-dump-server) 提供一个 `dump` 函数,可以将程序内的变量或数据打印到另一个命令行窗口中,基于 Symfony 的 `Var-Dump Server` 组件 - Network accessline 142
- [leearvin/hyperf-tinker](https://github.com/Arvin-Lee/hyperf-tinker) 基于 PsySH 提供一个交互式的 Hyperf shell 容器 - Network accessline 143
- [friendsofhyperf/telescope](https://github.com/friendsofhyperf/telescope) 适配 Hyperf 框架的调试工具。 - Network accessline 147
- [fx/hyperf-http-auth](https://github.com/nfangxu/hyperf-http-auth) 根据 laravel 中的 auth 组件改写的, 适配 hyperf 框架 - Network accessline 148
- [96qbhy/hyperf-auth](https://github.com/qbhy/hyperf-auth) 参考 laravel 的 auth 组件设计,支持 jwt、session、sso(单点多设备登录) 驱动 - Network accessline 149
- [hyperf-ext/jwt](https://github.com/hyperf-ext/jwt) JWT 组件,实现了完整用于 JWT 认证的能力 - Network accessline 150
- [hyperf-ext/auth](https://github.com/hyperf-ext/auth) 移植自 `illuminate/auth`,基本完整的实现了 Laravel Auth 的功能特性 - Network accessline 151
- [donjan-deng/hyperf-casbin](https://github.com/donjan-deng/hyperf-casbin) 适配于 Hyperf 的开源访问控制框架 [Casbin](https://casbin.org/docs/zh-CN/overview) - Network accessline 155
- [hyperf/testing](https://github.com/hyperf/testing) Hyperf 官方提供的单元测试组件 - Network accessline 156
- [friendsofhyperf/pest-plugin-hyperf](https://github.com/friendsofhyperf/pest-plugin-hyperf) 适配于 Hyperf 的 [Pest](https://pestphp.com/) 插件,为 Pest 提供协程环境支持 - Network accessline 160
- [lysice/hyperf-redis-lock](https://github.com/Lysice/hyperf-redis-lock) 根据 Laravel 的 lock 组件改写,适配于 Hyperf 框架 - Network accessline 161
- [pudongping/hyperf-wise-locksmith](https://github.com/pudongping/hyperf-wise-locksmith) 适配 hyperf 框架的互斥锁库,用于在高并发场景下提供 PHP 代码的有序执行。支持文件锁、分布式锁、红锁、协程级互斥锁 - Network accessline 165
- [dtm-php/dtm-client](https://github.com/dtm-php/dtm-client) 支持 Hyperf 的 dtm 分布式事务客户端组件 - Network accessline 169
- [hyperf-helper/dependency](https://github.com/lazychanger/hyperf-helper-dependency) 使用注解快速的配置依赖关系,并且支持依赖优先级 - Network accessline 173
- [yurunsoft/pay-sdk](https://github.com/Yurunsoft/PaySDK) 支持 Swoole 协程的支付宝/微信支付 SDK - Network accessline 174
- [yurunsoft/yurun-oauth-login](https://github.com/Yurunsoft/YurunOAuthLogin) 支持 Swoole 协程的第三方登录授权 SDK(QQ、微信、微博、GitHub、Gitee 等) - Network accessline 175
- [w7corp/wechat](zh-cn/sdks/wechat) EasyWeChat,一个流行的非官方微信 SDK - [yansongda/hyperf-pay](https://github.com/yansongda/hyperf-pay) 支持 `支付宝/微信` 的支付组件,基于 [yansongda/pay](https://github.com/yansongda/pay) 实现,适配于 `Hyperf` 框架 - [alapi/hyperf-meili - Network accessline 176
- [yansongda/hyperf-pay](https://github.com/yansongda/hyperf-pay) 支持 `支付宝/微信` 的支付组件,基于 [yansongda/pay](https://github.com/yansongda/pay) 实现,适配于 `Hyperf` 框架 - Network accessline 177
- [alapi/hyperf-meilisearch](https://github.com/anhao/hyperf-meilisearch) 为 Hyperf Scout 提供的 meilisearch 客户端 - Network accessline 178
- [vinchan/message-notify](https://github.com/VinchanGit/message-notify) Hyperf 异常监控报警通知组件(钉钉群机器人、飞书群机器人、邮件、QQ 频道机器人、企业微信群机器人)
skills/hyperf/references/zh-cn/cache.md
- Network accessline 3
[hyperf/cache](https://github.com/hyperf/cache) 提供了基于 `Aspect` 实现的切面缓存,也提供了实现 `Psr\SimpleCache\CacheInterface` 的缓存类。 - Network accessline 36
Simple Cache 也就是 [PSR-16](https://www.php-fig.org/psr/psr-16/) 规范,本组件适配了该规范,如果您希望使用实现 `Psr\SimpleCache\CacheInterface` 缓存类,比如要重写 `EasyWeChat` 的缓存模块,可以直接从依赖注入容器中获取 `Psr\SimpleCache\CacheInterface` 即可,如下所示:
skills/hyperf/references/zh-cn/changelog/1.0.md
- Network accessline 7
- [#565](https://github.com/hyperf/hyperf/pull/565) 增加对 Redis 客户端的 `options` 配置参数支持; - Network accessline 8
- [#580](https://github.com/hyperf/hyperf/pull/580) 增加协程并发控制特性,通过 `Hyperf\Utils\Coroutine\Concurrent` 可以实现一个代码块内限制同时最多运行的协程数量; - Network accessline 12
- [#583](https://github.com/hyperf/hyperf/pull/583) 当 `BaseClient::start` 失败时会抛出 `Hyperf\GrpcClient\Exception\GrpcClientException` 异常; - Network accessline 13
- [#585](https://github.com/hyperf/hyperf/pull/585) 当投递到 TaskWorker 执行的 Task 失败时,会回传异常到 Worker 进程中; - Network accessline 17
- [#564](https://github.com/hyperf/hyperf/pull/564) 修复某些情况下 `Coroutine\Http2\Client->send` 返回值不正确的问题; - Network accessline 18
- [#567](https://github.com/hyperf/hyperf/pull/567) 修复当 JSON RPC 消费者配置 name 不是接口时,无法生成代理类的问题; - Network accessline 19
- [#571](https://github.com/hyperf/hyperf/pull/571) 修复 ExceptionHandler 的 `stopPropagation` 的协程变量污染的问题; - Network accessline 20
- [#579](https://github.com/hyperf/hyperf/pull/579) 动态初始化 `snowflake` 的 MetaData,主要修复当在命令模式下使用 Snowflake 时,比如 `di:init-proxy` 命令,会连接到 Redis 服务器至超时; - Network accessline 26
- [#534](https://github.com/hyperf/hyperf/pull/534) 修复 Guzzle HTTP 客户端的 `CoroutineHanlder` 没有处理状态码为 `-3` 的情况; - Network accessline 27
- [#541](https://github.com/hyperf/hyperf/pull/541) 修复 gRPC 客户端的 `$client` 参数设置错误的问题; - Network accessline 28
- [#542](https://github.com/hyperf/hyperf/pull/542) 修复 `Hyperf\Grpc\Parser::parseResponse` 无法支持 gRPC 标准状态码的问题; - Network accessline 29
- [#551](https://github.com/hyperf/hyperf/pull/551) 修复当服务端关闭了 gRPC 连接时,gRPC 客户端会残留一个死循环的协程; - Network accessline 30
- [#558](https://github.com/hyperf/hyperf/pull/558) 修复 `UDP Server` 无法正确配置启动的问题; - Network accessline 34
- [#549](https://github.com/hyperf/hyperf/pull/549) 优化了 `Hyperf\Amqp\Connection\SwooleIO` 的 `read` 和 `write` 方法,减少不必要的重试; - Network accessline 35
- [#559](https://github.com/hyperf/hyperf/pull/559) 优化 `Hyperf\HttpServer\Response::redirect()` 方法,自动识别链接首位是否为斜杠并合理修正参数; - Network accessline 36
- [#560](https://github.com/hyperf/hyperf/pull/560) 优化 `Hyperf\WebSocketServer\CoreMiddleware`,移除了不必要的代码; - Network accessline 40
- [#545](https://github.com/hyperf/hyperf/pull/545) 移除了 `Hyperf\Database\Model\SoftDeletes` 内无用的 `restoring` 和 `restored` 静态方法; - Network accessline 44
- [#558](https://github.com/hyperf/hyperf/pull/558) 标记了 `Hyperf\Server\ServerInterface::SERVER_TCP` 常量为 `弃用` 状态,该常量将于 `v1.1` 移除,由更合理的 `Hyperf\Server\ServerInterface::SERVER_BASE` 常量替代; - Network accessline 50
- [#389](https://github.com/hyperf/hyperf/pull/389) [#419](https://github.com/hyperf/hyperf/pull/419) [#432](https://github.com/hyperf/hyperf/pull/432) [#524](https://github.com/hyperf/hyperf/pull/524) 新增 Snowflake 官方组件, Snowflake 是一个由 Twit - Network accessline 51
- [#525](https://github.com/hyperf/hyperf/pull/525) 为 `Hyperf\HttpServer\Contract\ResponseInterface` 增加一个 `download()` 方法,提供便捷的下载响应返回; - Network accessline 55
- [#482](https://github.com/hyperf/hyperf/pull/482) 生成模型文件时,当设置了 `refresh-fillable` 选项时重新生成模型的 `fillable` 属性,同时该命令的默认情况下将不会再覆盖生成 `fillable` 属性; - Network accessline 56
- [#501](https://github.com/hyperf/hyperf/pull/501) 当 `Mapping` 注解的 `path` 属性为一个空字符串时,那么该路由则为 `/prefix`; - Network accessline 57
- [#513](https://github.com/hyperf/hyperf/pull/513) 如果项目设置了 `app_name` 属性,则进程名称会自动带上该名称; - Network accessline 58
- [#508](https://github.com/hyperf/hyperf/pull/508) [#526](https://github.com/hyperf/hyperf/pull/526) 当在非协程环境下执行 `Hyperf\Utils\Coroutine::parentId()` 方法时会返回一个 `null` 值; - Network accessline 62
- [#479](https://github.com/hyperf/hyperf/pull/479) 修复了当 Elasticsearch client 的 `host` 属性设置有误时,返回类型错误的问题; - Network accessline 63
- [#514](https://github.com/hyperf/hyperf/pull/514) 修复当 Redis 密码配置为空字符串时鉴权失败的问题; - Network accessline 64
- [#527](https://github.com/hyperf/hyperf/pull/527) 修复 Translator 无法重复翻译的问题; - Network accessline 70
- [#449](https://github.com/hyperf/hyperf/pull/428) 新增一个独立组件 [hyperf/translation](https://github.com/hyperf/translation), 衍生于 [illuminate/translation](https://github.com/illuminate/translation); - Network accessline 71
- [#449](https://github.com/hyperf/hyperf/pull/449) 为 GRPC-Server 增加标准错误码; - Network accessline 72
- [#450](https://github.com/hyperf/hyperf/pull/450) 为 `Hyperf\Database\Schema\Schema` 类的魔术方法增加对应的静态方法注释,为 IDE 提供代码提醒的支持; - Network accessline 76
- [#451](https://github.com/hyperf/hyperf/pull/451) 在使用 `@AutoController` 注解时不再会自动为魔术方法生成对应的路由; - Network accessline 77
- [#468](https://github.com/hyperf/hyperf/pull/468) 让 GRPC-Server 和 HTTP-Server 提供的异常处理器处理所有的异常,而不只是 `ServerException`; - Network accessline 81
- [#466](https://github.com/hyperf/hyperf/pull/466) 修复分页时数据不足时返回类型错误的问题; - Network accessline 82
- [#466](https://github.com/hyperf/hyperf/pull/470) 优化了 `vendor:publish` 命令,当要生成的目标文件夹存在时,不再重复生成; - Network accessline 88
- [#405](https://github.com/hyperf/hyperf/pull/405) 增加 `Hyperf\Utils\Context::override()` 方法,现在你可以通过 `override` 方法获取某些协程上下文的值并修改覆盖它; - Network accessline 89
- [#415](https://github.com/hyperf/hyperf/pull/415) 对 Logger 的配置文件增加多个 Handler 的配置支持; - Network accessline 93
- [#431](https://github.com/hyperf/hyperf/pull/431) 移除了 `Hyperf\GrpcClient\GrpcClient::openStream()` 的第 3 个参数,这个参数不会影响实际使用; - Network accessline 97
- [#414](https://github.com/hyperf/hyperf/pull/414) 修复 `Hyperf\WebSockerServer\Exception\Handler\WebSocketExceptionHandler` 内的变量名称错误的问题; - Network accessline 98
- [#424](https://github.com/hyperf/hyperf/pull/424) 修复 Guzzle 在使用 `Hyperf\Guzzle\CoroutineHandler` 时配置 `proxy` 参数时不支持数组传值的问题; - Network accessline 99
- [#430](https://github.com/hyperf/hyperf/pull/430) 修复 `Hyperf\HttpServer\Request::file()` 当以一个 Name 上传多个文件时,返回格式不正确的问题; - Network accessline 100
- [#431](https://github.com/hyperf/hyperf/pull/431) 修复 GRPC Client 的 Request 对象在发送 Force-Close 请求时缺少参数的问题; - Network accessline 106
- [#366](https://github.com/hyperf/hyperf/pull/366) 增加 `Hyperf\Server\Listener\InitProcessTitleListener` 监听者来设置进程名称, 同时增加了 `Hyperf\Framework\Event\OnStart` 和 `Hyperf\Framework\Event\OnManagerStart` 事件; - Network accessline 110
- [#361](https://github.com/hyperf/hyperf/pull/361) 修复 `db:model`命令在 MySQL 8 下不能正常运行; - Network accessline 111
- [#369](https://github.com/hyperf/hyperf/pull/369) 修复实现 `\Serializable` 接口的自定义异常类不能正确的序列化和反序列化问题; - Network accessline 112
- [#384](https://github.com/hyperf/hyperf/pull/384) 修复用户自定义的 `ExceptionHandler` 在 JSON RPC Server 下无法正常工作的问题,因为框架默认自动处理了对应的异常; - Network accessline 113
- [#370](https://github.com/hyperf/hyperf/pull/370) 修复了 `Hyperf\GrpcClient\BaseClient` 的 `$client` 属性在流式传输的时候设置了错误的类型的值的问题, 同时增加了默认的 `content-type` 为 `application/grpc+proto`,以及允许用户通过自定义 `Request` 对象来重写 `buildRequest()` 方法; - Network accessline 117
- [#356](https://github.com/hyperf/hyperf/pull/356) [#390](https://github.com/hyperf/hyperf/pull/390) 优化 aysnc-queue 组件当生成 Job 时,如果 Job 实现了 `Hyperf\Contract\CompressInterface`,那么 Job 对象会被压缩为一个更小的对象; - Network accessline 118
- [#358](https://github.com/hyperf/hyperf/pull/358) 只有当 `$enableCache` 为 `true` 时才生成注解缓存文件; - Network accessline 119
- [#359](https://github.com/hyperf/hyperf/pull/359) [#390](https://github.com/hyperf/hyperf/pull/390) 为 `Collection` 和 `Model` 增加压缩能力,当类实现 `Hyperf\Contract\CompressInterface` 可通过 `compress` 方法生成一个更小的对象; - Network accessline 125
- [#321](https://github.com/hyperf/hyperf/pull/321) 为 HTTP Server 的 Controller/RequestHandler 参数增加自定义对象类型的数组支持,特别适用于 JSON RPC 下,现在你可以通过在方法上定义 `@var Object[]` 来获得框架自动反序列化对应对象的支持; - Network accessline 126
- [#324](https://github.com/hyperf/hyperf/pull/324) 增加一个实现于 `Hyperf\Contract\IdGeneratorInterface` 的 ID 生成器 `NodeRequestIdGenerator`; - Network accessline 127
- [#336](https://github.com/hyperf/hyperf/pull/336) 增加动态代理的 RPC 客户端功能; - Network accessline 128
- [#346](https://github.com/hyperf/hyperf/pull/346) [#348](https://github.com/hyperf/hyperf/pull/348) 为 `hyperf/cache` 缓存组件增加文件驱动; - Network accessline 132
- [#330](https://github.com/hyperf/hyperf/pull/330) 当扫描的 $paths 为空时,不输出扫描信息; - Network accessline 133
- [#328](https://github.com/hyperf/hyperf/pull/328) 根据 Composer 的 PSR-4 定义的规则加载业务项目; - Network accessline 134
- [#329](https://github.com/hyperf/hyperf/pull/329) 优化 JSON RPC 服务端和客户端的异常消息处理; - Network accessline 135
- [#340](https://github.com/hyperf/hyperf/pull/340) 为 `make` 函数增加索引数组的传参方式; - Network accessline 136
- [#349](https://github.com/hyperf/hyperf/pull/349) 重命名下列类,修正由于拼写错误导致的命名错误; - Network accessline 146
- [#325](https://github.com/hyperf/hyperf/pull/325) 优化 RPC 服务注册时会多次调用 Consul Services 的问题; - Network accessline 147
- [#332](https://github.com/hyperf/hyperf/pull/332) 修复 `Hyperf\Tracer\Middleware\TraceMiddeware` 在新版的 openzipkin/zipkin 下的类型约束错误; - Network accessline 148
- [#333](https://github.com/hyperf/hyperf/pull/333) 修复 `Redis::delete()` 方法在 5.0 版不存在的问题; - Network accessline 149
- [#334](https://github.com/hyperf/hyperf/pull/334) 修复向阿里云 ACM 配置中心拉取配置时,部分情况下部分配置无法更新的问题; - Network accessline 150
- [#337](https://github.com/hyperf/hyperf/pull/337) 修复当 Header 的 key 为非字符串类型时,会返回 500 响应的问题; - Network accessline 151
- [#338](https://github.com/hyperf/hyperf/pull/338) 修复 `ProviderConfig::load` 在遇到重复 key 时会导致在深度合并时将字符串转换成数组的问题; - Network accessline 157
- [#317](https://github.com/hyperf/hyperf/pull/317) 增加 `composer-json-fixer` 来优化 composer.json 文件的内容; - Network accessline 158
- [#320](https://github.com/hyperf/hyperf/pull/320) DI 定义 Definition 时,允许 value 为一个匿名函数; - Network accessline 162
- [#300](https://github.com/hyperf/hyperf/pull/300) 让 AsyncQueue 的消息于子协程内来进行处理,修复 `attempts` 参数与实际重试次数不一致的问题; - Network accessline 163
- [#305](https://github.com/hyperf/hyperf/pull/305) 修复 `Hyperf\Utils\Arr::set` 方法的 `$key` 参数不支持 `int` 个 `null` 的问题; - Network accessline 164
- [#312](https://github.com/hyperf/hyperf/pull/312) 修复 `Hyperf\Amqp\BeforeMainServerStartListener` 监听器的优先级错误的问题; - Network accessline 165
- [#315](https://github.com/hyperf/hyperf/pull/315) 修复 ETCD 配置中心在 Worker 进程重启后或在自定义进程内无法使用问题; - Network accessline 166
- [#318](https://github.com/hyperf/hyperf/pull/318) 修复服务会持续注册到服务中心的问题; - Network accessline 170
- [#323](https://github.com/hyperf/hyperf/pull/323) 强制转换 `Cacheable` 和 `CachePut` 注解的 `$ttl` 属性为 `int` 类型; - Network accessline 176
- [#276](https://github.com/hyperf/hyperf/pull/276) AMQP 消费者支持配置及绑定多个 `routing_key`; - Network accessline 177
- [#277](https://github.com/hyperf/hyperf/pull/277) 增加 ETCD 客户端组件及 ETCD 配置中心组件; - Network accessline 181
- [#297](https://github.com/hyperf/hyperf/pull/297) 如果服务注册失败,会于 10 秒后重试注册,且屏蔽了连接不上服务中心(Consul)而抛出的异常; - Network accessline 182
- [#298](https://github.com/hyperf/hyperf/pull/298) [#301](https://github.com/hyperf/hyperf/pull/301) 适配 `openzipkin/zipkin` v1.3.3+ 版本; - Network accessline 186
- [#271](https://github.com/hyperf/hyperf/pull/271) 修复了 AOP 在 `classes` 只会策略下配置同一个类的多个方法只会实现第一个方法的代理方法的问题; - Network accessline 187
- [#285](https://github.com/hyperf/hyperf/pull/285) 修复了 AOP 在匿名类下生成节点存在丢失的问题; - Network accessline 188
- [#286](https://github.com/hyperf/hyperf/pull/286) 自动 `rollback` 没有 `commit` 或 `rollback` 的 MySQL 连接; - Network accessline 189
- [#292](https://github.com/hyperf/hyperf/pull/292) 修复了 `Request::header` 方法的 `$default` 参数无效的问题; - Network accessline 190
- [#293](https://github.com/hyperf/hyperf/pull/293) 修复了 `Arr::get` 方法的 `$key` 参数不支持 `int` and `null` 传值的问题; - Network accessline 196
- [#266](https://github.com/hyperf/hyperf/pull/266) 修复投递 AMQP 消息时的超时逻辑; - Network accessline 197
- [#273](https://github.com/hyperf/hyperf/pull/273) 修复当有一个服务注册到服务中心的时候所有服务会被移除的问题; - Network accessline 198
- [#274](https://github.com/hyperf/hyperf/pull/274) 修复视图响应的 Content-Type ; - Network accessline 204
- [#203](https://github.com/hyperf/hyperf/pull/203) [#236](https://github.com/hyperf/hyperf/pull/236) [#247](https://github.com/hyperf/hyperf/pull/247) [#252](https://github.com/hyperf/hyperf/pull/252) 增加视图组件,支持 Blade 引擎和 Smarty 引擎; - Network accessline 205
- [#203](https://github.com/hyperf/hyperf/pull/203) 增加 Task 组件,适配 Swoole Task 机制; - Network accessline 206
- [#245](https://github.com/hyperf/hyperf/pull/245) 增加 TaskWorkerStrategy 和 WorkerStrategy 两种定时任务调度策略. - Network accessline 207
- [#251](https://github.com/hyperf/hyperf/pull/251) 增加用协程上下文作为储存的缓存驱动; - Network accessline 208
- [#254](https://github.com/hyperf/hyperf/pull/254) 增加 `RequestMapping::$methods` 对数组传值的支持, 现在可以通过 `@RequestMapping(methods={"GET"})` 和 `@RequestMapping(methods={RequestMapping::GET})` 两种新的方式定义方法; - Network accessline 209
- [#255](https://github.com/hyperf/hyperf/pull/255) 控制器返回 `Hyperf\Utils\Contracts\Arrayable` 会自动转换为 Response 对象, 同时对返回字符串的响应对象增加 `text/plain` Content-Type; - Network accessline 210
- [#256](https://github.com/hyperf/hyperf/pull/256) 如果 `Hyperf\Contract\IdGeneratorInterface` 存在容器绑定关系, 那么 `json-rpc` 客户端会根据该类自动生成一个请求 ID 并储存在 Request attribute 里,同时完善了 `JSON RPC` 在 TCP 协议下的服务注册及健康检查; - Network accessline 214
- [#247](https://github.com/hyperf/hyperf/pull/247) 使用 `WorkerStrategy` 作为默认的计划任务调度策略; - Network accessline 215
- [#256](https://github.com/hyperf/hyperf/pull/256) 优化 `JSON RPC` 的错误处理,现在当方法不存在时也会返回一个标准的 `JSON RPC` 错误对象; - Network accessline 219
- [#235](https://github.com/hyperf/hyperf/pull/235) 为 `grpc-server` 增加了默认的错误处理器,防止错误抛出. - Network accessline 220
- [#240](https://github.com/hyperf/hyperf/pull/240) 优化了 OnPipeMessage 事件的触发,修复会被多个监听器获取错误数据的问题; - Network accessline 221
- [#257](https://github.com/hyperf/hyperf/pull/257) 修复了在某些环境下无法获得内网 IP 的问题; - Network accessline 227
- [#185](https://github.com/hyperf/hyperf/pull/185) `响应(Response)` 增加 `xml` 格式支持; - Network accessline 228
- [#202](https://github.com/hyperf/hyperf/pull/202) 在协程内抛出未捕获的异常时,默认输出异常的 trace 信息; - Network accessline 229
- [#138](https://github.com/hyperf/hyperf/pull/138) [#197](https://github.com/hyperf/hyperf/pull/197) 增加秒级定时任务组件; - Network accessline 233
- [#195](https://github.com/hyperf/hyperf/pull/195) 变更 `retry()` 函数的 `$times` 参数的行为意义, 表示重试的次数而不是执行的次数; - Network accessline 234
- [#198](https://github.com/hyperf/hyperf/pull/198) 优化 `Hyperf\Di\Container` 的 `has()` 方法, 当传递一个不可实例化的示例(如接口)至 `$container->has($interface)` 方法时,会返回 `false`; - Network accessline 235
- [#199](https://github.com/hyperf/hyperf/pull/199) 当生产 AMQP 消息失败时,会自动重试一次; - Network accessline 236
- [#200](https://github.com/hyperf/hyperf/pull/200) 通过 Git 打包项目的部署包时,不再包含 `tests` 文件夹; - Network accessline 240
- [#176](https://github.com/hyperf/hyperf/pull/176) 修复 `LengthAwarePaginator::nextPageUrl()` 方法返回值的类型约束; - Network accessline 241
- [#188](https://github.com/hyperf/hyperf/pull/188) 修复 Guzzle Client 的代理设置不生效的问题; - Network accessline 242
- [#211](https://github.com/hyperf/hyperf/pull/211) 修复 RPC Client 存在多个时会被最后一个覆盖的问题; - Network accessline 243
- [#212](https://github.com/hyperf/hyperf/pull/212) 修复 Guzzle Client 的 `ssl_key` 和 `cert` 配置项不能正常工作的问题; - Network accessline 249
- [#140](https://github.com/hyperf/hyperf/pull/140) 支持 Swoole v4.4.0. - Network accessline 250
- [#152](https://github.com/hyperf/hyperf/pull/152) 数据库连接在低使用率时连接池会自动释放连接 - Network accessline 251
- [#163](https://github.com/hyperf/hyperf/pull/163) constants 组件的`AbstractConstants::__callStatic` 支持自定义参数 - Network accessline 255
- [#124](https://github.com/hyperf/hyperf/pull/124) `DriverInterface::push` 增加 `$delay` 参数用于设置延迟时间, 同时 `DriverInterface::delay` 将标记为弃用的,将于 1.1 版本移除 - Network accessline 256
- [#125](https://github.com/hyperf/hyperf/pull/125) 更改 `config()` 函数的 `$default` 参数的默认值为 `null`. - Network accessline 260
- [#110](https://github.com/hyperf/hyperf/pull/110) [#111](https://github.com/hyperf/hyperf/pull/111) 修复 `Redis::select` 无法正常切换数据库的问题 - Network accessline 261
- [#131](https://github.com/hyperf/hyperf/pull/131) 修复 `middlewares` 配置在 `Router::addGroup` 下无法正常设置的问题 - Network accessline 262
- [#132](https://github.com/hyperf/hyperf/pull/132) 修复 `request->hasFile` 判断条件错误的问题 - Network accessline 263
- [#135](https://github.com/hyperf/hyperf/pull/135) 修复 `response->redirect` 在调整外链时无法正确生成链接的问题 - Network accessline 264
- [#139](https://github.com/hyperf/hyperf/pull/139) 修复 ConsulAgent 的 URI 无法自定义设置的问题 - Network accessline 265
- [#148](https://github.com/hyperf/hyperf/pull/148) 修复当 `migrates` 文件夹不存在时无法生成迁移模板的问题 - Network accessline 266
- [#169](https://github.com/hyperf/hyperf/pull/169) 修复处理请求时没法正确处理数组类型的参数 - Network accessline 267
- [#170](https://github.com/hyperf/hyperf/pull/170) 修复当路由不存在时 WebSocket Server 无法正确捕获异常的问题 - Network accessline 271
- [#131](https://github.com/hyperf/hyperf/pull/131) 移除 `Router` `options` 里的 `server` 参数 - Network accessline 277
- [#48](https://github.com/hyperf/hyperf/pull/48) 增加 WebSocket 协程客户端及服务端 - Network accessline 278
- [#51](https://github.com/hyperf/hyperf/pull/51) 增加了 `enableCache` 参数去控制 `DefinitionSource` 是否启用注解扫描缓存 - Network accessline 279
- [#61](https://github.com/hyperf/hyperf/pull/61) 通过 `db:model` 命令创建模型时增加属性类型 - Network accessline 280
- [#65](https://github.com/hyperf/hyperf/pull/65) 模型缓存增加 JSON 格式支持 - Network accessline 284
- [#46](https://github.com/hyperf/hyperf/pull/46) 移除了 `hyperf/di`, `hyperf/command` and `hyperf/dispatcher` 组件对 `hyperf/framework` 组件的依赖 - Network accessline 288
- [#45](https://github.com/hyperf/hyperf/pull/55) 修复当引用了 `hyperf/websocket-server` 组件时有可能会导致 HTTP Server 启动失败的问题 - Network accessline 289
- [#55](https://github.com/hyperf/hyperf/pull/55) 修复方法级别的 `@Middleware` 注解可能会被覆盖的问题 - Network accessline 290
- [#73](https://github.com/hyperf/hyperf/pull/73) 修复 `db:model` 命令对短属性处理不正确的问题 - Network accessline 291
- [#88](https://github.com/hyperf/hyperf/pull/88) 修复当控制器存在多层文件夹时生成的路由可能不正确的问题 - Network accessline 292
- [#101](https://github.com/hyperf/hyperf/pull/101) 修复常量不存在 `@Message` 注解时会报错的问题 - Network accessline 298
- 接入 Travis CI,目前 Hyperf 共存在 426 个单测,1124 个断言; [#25](https://github.com/hyperf/hyperf/pull/25) - Network accessline 299
- 完善了对 `Redis::connect` 方法的参数支持; [#29](https://github.com/hyperf/hyperf/pull/29)
skills/hyperf/references/zh-cn/changelog/1.1.md
- Network accessline 7
- [#1734](https://github.com/hyperf/hyperf/pull/1734) 修复模型多态查询,关联关系为空时,也会查询 SQL 的问题; - Network accessline 8
- [#1739](https://github.com/hyperf/hyperf/pull/1739) 修复 `hyperf/filesystem` 组件 OSS HOOK 位运算错误,导致 resource 判断不准确的问题; - Network accessline 9
- [#1743](https://github.com/hyperf/hyperf/pull/1743) 修复 `grafana.json` 中错误的`refId` 字段值; - Network accessline 10
- [#1748](https://github.com/hyperf/hyperf/pull/1748) 修复 `hyperf/amqp` 组件在使用其他连接池时,对应的 `concurrent.limit` 配置不生效的问题; - Network accessline 11
- [#1750](https://github.com/hyperf/hyperf/pull/1750) 修复连接池组件,在连接关闭失败时会导致计数有误的问题; - Network accessline 12
- [#1754](https://github.com/hyperf/hyperf/pull/1754) 修复 BASE Server 服务,启动提示没有考虑 UDP 服务的情况; - Network accessline 13
- [#1764](https://github.com/hyperf/hyperf/pull/1764) 修复当时间值为 null 时,datatime 验证器执行失败的 BUG; - Network accessline 14
- [#1769](https://github.com/hyperf/hyperf/pull/1769) 修复 `hyperf/socketio-server` 组件中,客户端初始化断开连接操作时会报 Notice 的错误的问题; - Network accessline 18
- [#1724](https://github.com/hyperf/hyperf/pull/1724) 新增模型方法 `Model::orWhereHasMorph` ,`Model::whereDoesntHaveMorph` and `Model::orWhereDoesntHaveMorph`; - Network accessline 19
- [#1741](https://github.com/hyperf/hyperf/pull/1741) 新增 `Hyperf\Command\Command::choiceMultiple(): array` 方法,因为 `choice` 方法的返回类型为 `string,所以就算设置了 `$multiple` 参数也无法处理多个选择的情况; - Network accessline 20
- [#1742](https://github.com/hyperf/hyperf/pull/1742) 新增模型 自定义类型转换器 功能; - Network accessline 29
- [#1723](https://github.com/hyperf/hyperf/pull/1723) 异常处理器集成了 filp/whoops 。 - Network accessline 30
- [#1730](https://github.com/hyperf/hyperf/pull/1730) 为命令 `gen:model` 可选项 `--refresh-fillable` 添加简写 `-R`。 - Network accessline 34
- [#1696](https://github.com/hyperf/hyperf/pull/1696) 修复方法 `Context::copy` 传入字段 `keys` 后无法正常使用的 BUG。 - Network accessline 35
- [#1708](https://github.com/hyperf/hyperf/pull/1708) [#1718](https://github.com/hyperf/hyperf/pull/1718) 修复 `hyperf/socketio-server` 组件内存溢出等 BUG。 - Network accessline 39
- [#1710](https://github.com/hyperf/hyperf/pull/1710) MAC 系统下不再使用 `cli_set_process_title` 方法设置进程名。 - Network accessline 45
- [#1616](https://github.com/hyperf/hyperf/pull/1616) 新增 ORM 方法 `morphWith` 和 `whereHasMorph`。 - [#1651](https://github.com/hyperf/hyperf/pull/1651) 新增 `socket.io-server` 组件。 - Network accessline 46
- [#1651](https://github.com/hyperf/hyperf/pull/1651) 新增 `socket.io-server` 组件。 - Network accessline 47
- [#1666](https://github.com/hyperf/hyperf/pull/1666) [#1669](https://github.com/hyperf/hyperf/pull/1669) 新增 AMQP RPC 客户端。 - Network accessline 51
- [#1682](https://github.com/hyperf/hyperf/pull/1682) 修复 `RpcPoolTransporter` 的连接池配置不生效的 BUG。 - Network accessline 52
- [#1683](https://github.com/hyperf/hyperf/pull/1683) 修复 `RpcConnection` 连接失败后,相同协程内无法正常重置连接的 BUG。 - Network accessline 56
- [#1670](https://github.com/hyperf/hyperf/pull/1670) 优化掉 `Cache 组件` 一条无意义的删除指令。 - Network accessline 62
- [#1645](https://github.com/hyperf/hyperf/pull/1645) 匿名函数路由支持参数注入。 - Network accessline 63
- [#1647](https://github.com/hyperf/hyperf/pull/1647) 为 `model-cache` 组件添加 `RedisStringHandler`。 - Network accessline 64
- [#1654](https://github.com/hyperf/hyperf/pull/1654) 新增 `RenderException` 统一捕获 `view` 组件抛出的异常。 - Network accessline 68
- [#1639](https://github.com/hyperf/hyperf/pull/1639) 修复 `rpc-client` 会从 `consul` 中获取到不健康节点的 BUG。 - Network accessline 69
- [#1641](https://github.com/hyperf/hyperf/pull/1641) 修复 `rpc-client` 获取到的结果为 `null` 时,会抛出 `RequestException` 的 BUG。 - Network accessline 70
- [#1641](https://github.com/hyperf/hyperf/pull/1641) 修复 `rpc-server` 中 `jsonrpc-tcp-length-check` 协议,无法在 `consul` 中添加心跳检查的 BUG。 - Network accessline 71
- [#1650](https://github.com/hyperf/hyperf/pull/1650) 修复脚本 `describe:routes` 列表展示有误的 BUG。 - Network accessline 72
- [#1655](https://github.com/hyperf/hyperf/pull/1655) 修复 `MysqlProcessor::processColumns` 无法在 `MySQL Server 8.0` 版本中正常工作的 BUG。 - Network accessline 76
- [#1636](https://github.com/hyperf/hyperf/pull/1636) 优化 `co-phpunit` 脚本,当出现 `case` 验证失败后,协程也可以正常结束。 - Network accessline 83
- [#1575](https://github.com/hyperf/hyperf/pull/1575) 为脚本 `gen:model` 生成的模型,自动添加 `relation` `scope` 和 `attributes` 的变量注释。 - Network accessline 84
- [#1586](https://github.com/hyperf/hyperf/pull/1586) 添加 `symfony/event-dispatcher` 组件小于 `4.3` 时的 `conflict` 配置。用于解决用户使用了 `4.3` 以下版本时,导致 `SymfonyDispatcher` 实现冲突的 BUG。 - Network accessline 85
- [#1597](https://github.com/hyperf/hyperf/pull/1597) 为 `AMQP` 消费者,添加最大消费次数 `maxConsumption`。 - Network accessline 86
- [#1603](https://github.com/hyperf/hyperf/pull/1603) 为 `WebSocket` 服务添加基于 `fd` 存储的 `Context`。 - Network accessline 90
- [#1553](https://github.com/hyperf/hyperf/pull/1553) 修复 `jsonrpc` 服务,发布了相同名字不同协议到 `consul` 后,客户端无法正常工作的 BUG。 - Network accessline 91
- [#1589](https://github.com/hyperf/hyperf/pull/1589) 修复了文件锁在协程下可能会造成死锁的 BUG。 - Network accessline 92
- [#1607](https://github.com/hyperf/hyperf/pull/1607) 修复了重写后的 `go` 方法,返回值与 `swoole` 原生方法不符的 BUG。 - Network accessline 93
- [#1624](https://github.com/hyperf/hyperf/pull/1624) 修复当路由 `Handler` 是匿名函数时,脚本 `describe:routes` 执行失败的 BUG。 - Network accessline 99
- [#1578](https://github.com/hyperf/hyperf/pull/1578) `UploadedFile` 支持 `getStream` 方法。 - Network accessline 103
- [#1563](https://github.com/hyperf/hyperf/pull/1563) 修复服务关停后,定时器的 `onOneServer` 配置不会被重置。 - Network accessline 104
- [#1565](https://github.com/hyperf/hyperf/pull/1565) 当 `DB` 组件重连 `Mysql` 时,重置事务等级为 0。 - Network accessline 105
- [#1572](https://github.com/hyperf/hyperf/pull/1572) 修复 `Hyperf\GrpcServer\CoreMiddleware` 中,自定义类的父类找不到时报错的 BUG。 - Network accessline 106
- [#1577](https://github.com/hyperf/hyperf/pull/1577) 修复 `describe:routes` 脚本 `server` 配置不生效的 BUG。 - Network accessline 107
- [#1579](https://github.com/hyperf/hyperf/pull/1579) 修复 `migrate:refresh` 脚本 `step` 参数不为 `int` 时会报错的 BUG。 - Network accessline 111
- [#1560](https://github.com/hyperf/hyperf/pull/1560) 修改 `hyperf/cache` 组件文件缓存引擎中 原生的文件操作为 `Filesystem`。 - Network accessline 112
- [#1568](https://github.com/hyperf/hyperf/pull/1568) 修改 `hyperf/async-queue` 组件 `Redis` 引擎中的 `\Redis` 为 `RedisProxy`。 - Network accessline 118
- [#1532](https://github.com/hyperf/hyperf/pull/1532) 修复 'Symfony\Component\EventDispatcher\EventDispatcherInterface' 在 --no-dev 条件下安装会出现找不到接口的问题; - Network accessline 125
- [#1501](https://github.com/hyperf/hyperf/pull/1501) 添加 `Symfony` 命令行事件触发器,使之可以与 `hyperf/event` 组件结合使用; - Network accessline 126
- [#1502](https://github.com/hyperf/hyperf/pull/1502) 为注解 `Hyperf\AsyncQueue\Annotation\AsyncQueueMessage` 添加 `maxAttempts` 参数,用于控制消息失败时重复消费的次数; - Network accessline 127
- [#1510](https://github.com/hyperf/hyperf/pull/1510) 添加 `Hyperf/Utils/CoordinatorManager`,用于提供更优雅的启动和停止服务,服务启动前不响应请求,服务停止前,保证某些循环逻辑能够正常结束; - Network accessline 128
- [#1517](https://github.com/hyperf/hyperf/pull/1517) 为依赖注入容器的懒加载功能添加了对接口继承和抽象方法继承的支持; - Network accessline 129
- [#1529](https://github.com/hyperf/hyperf/pull/1529) 处理 `response cookies` 中的 `SameSite` 属性; - Network accessline 133
- [#1494](https://github.com/hyperf/hyperf/pull/1494) 修复单独使用 `Redis` 组件时,注释 `@mixin` 会被当成注解的 BUG; - Network accessline 134
- [#1499](https://github.com/hyperf/hyperf/pull/1499) 修复引入 `hyperf/translation` 组件后,`hyperf/constants` 组件的动态参数不生效的 BUG; - Network accessline 135
- [#1504](https://github.com/hyperf/hyperf/pull/1504) 修复 `RPC` 代理客户端无法正常处理返回值为 `nullable` 类型的方法; - Network accessline 136
- [#1507](https://github.com/hyperf/hyperf/pull/1507) 修复 `hyperf/consul` 组件的 `catalog` 注册方法调用会失败的 BUG; - Network accessline 142
- [#1467](https://github.com/hyperf/hyperf/pull/1467) 为 `filesystem` 组件添加默认配置; - Network accessline 143
- [#1469](https://github.com/hyperf/hyperf/pull/1469) 为 `Hyperf/Guzzle/HandlerStackFactory` 添加 `getHandler()` 方法,并尽可能的使用 `make()` 创建 `handler`; - Network accessline 144
- [#1480](https://github.com/hyperf/hyperf/pull/1480) RPC client 现在会自动代理父接口的方法定义; - Network accessline 148
- [#1481](https://github.com/hyperf/hyperf/pull/1481) 异步队列创建消息时,使用 `make` 方法创建; - Network accessline 152
- [#1471](https://github.com/hyperf/hyperf/pull/1471) 修复 `NSQ` 组件,数据量超过 `max-output-buffer-size` 接收数据失败的 `BUG`; - Network accessline 153
- [#1472](https://github.com/hyperf/hyperf/pull/1472) 修复 `NSQ` 组件,在消费者中发布消息时,会导致消费者无法正常消费的 `BUG`; - Network accessline 154
- [#1474](https://github.com/hyperf/hyperf/pull/1474) 修复 `NSQ` 组件,`requeue` 消息时,消费者会意外重启的 `BUG`; - Network accessline 155
- [#1477](https://github.com/hyperf/hyperf/pull/1477) 修复使用 `Hyperf\Testing\Client::flushContext` 时,会引发 `Fixed Invalid argument supplied` 异常的 `BUG`; - Network accessline 161
- [#1440](https://github.com/hyperf/hyperf/pull/1440) 为 NSQ 的每个连接新增 `enable` 配置项来控制连接下的所有消费者的自启功能; - Network accessline 162
- [#1451](https://github.com/hyperf/hyperf/pull/1451) 新增 Filesystem 组件; - Network accessline 163
- [#1459](https://github.com/hyperf/hyperf/pull/1459) 模型 Collection 新增 macroable 支持; - Network accessline 164
- [#1463](https://github.com/hyperf/hyperf/pull/1463) 为 Guzzle Handler 增加 `on_stats` 选项的功能支持; - Network accessline 168
- [#1452](https://github.com/hyperf/hyperf/pull/1452) 在注入 Redis 客户端时,推荐使用 `\Hyperf\Redis\Redis` 来替代 `\Redis`,原因在 [#938](https://github.com/hyperf/hyperf/issues/938); - Network accessline 172
- [#1445](https://github.com/hyperf/hyperf/pull/1445) 修复命令 `describe:routes` 缺失了带参数的路由; - Network accessline 173
- [#1449](https://github.com/hyperf/hyperf/pull/1449) 修复了高基数请求路径的内存溢出的问题; - Network accessline 174
- [#1454](https://github.com/hyperf/hyperf/pull/1454) 修复 Collection 的 `flatten()` 方法因为 `INF` 参数值为 `float` 类型导致无法使用的问题; - Network accessline 175
- [#1458](https://github.com/hyperf/hyperf/pull/1458) 修复了 Guzzle 不支持 Elasticsearch 版本大于 7.0 的问题; - Network accessline 181
- [#1393](https://github.com/hyperf/hyperf/pull/1393) 为 `Hyperf\HttpMessage\Stream\SwooleStream` 实现更多的方法; - Network accessline 182
- [#1419](https://github.com/hyperf/hyperf/pull/1419) 允许 ConfigFetcher 通过一个协程启动而无需额外启动一个进程; - Network accessline 183
- [#1424](https://github.com/hyperf/hyperf/pull/1424) 允许用户通过配置文件的形式修改 `session_name` 配置; - Network accessline 184
- [#1435](https://github.com/hyperf/hyperf/pull/1435) 为模型缓存增加 `use_default_value` 属性来自动修正缓存数据与数据库数据之间的差异; - Network accessline 185
- [#1436](https://github.com/hyperf/hyperf/pull/1436) 为 NSQ 消费者增加 `isEnable()` 方法来控制消费者进程是否启用自启功能; - Network accessline 191
- [#1402](https://github.com/hyperf/hyperf/pull/1402) 增加 `Hyperf\DbConnection\Annotation\Transactional` 注解来自动开启一个事务; - Network accessline 192
- [#1412](https://github.com/hyperf/hyperf/pull/1412) 增加 `Hyperf\View\RenderInterface::getContents()` 方法来直接获取 View Render 的渲染内容; - Network accessline 193
- [#1416](https://github.com/hyperf/hyperf/pull/1416) 增加 Swoole 事件常量 `ON_WORKER_ERROR`. - Network accessline 197
- [#1405](https://github.com/hyperf/hyperf/pull/1405) 修复当模型存在 `hidden` 属性时,模型缓存功能缓存的字段数据不正确的问题; - Network accessline 198
- [#1410](https://github.com/hyperf/hyperf/pull/1410) 修复 Tracer 无法追踪由 `Hyperf\Redis\RedisFactory` 创建的连接的调用链; - Network accessline 199
- [#1415](https://github.com/hyperf/hyperf/pull/1415) 修复阿里 ACM 客户端在当 `SecurityToken` Header 为空时 sts token 会解密失败的问题; - Network accessline 206
- [#1339](https://github.com/hyperf/hyperf/pull/1339) [#1394](https://github.com/hyperf/hyperf/pull/1394) 新增 `describe:routes` 命令来显示路由的细节信息; - Network accessline 207
- [#1354](https://github.com/hyperf/hyperf/pull/1354) 为 `config-aliyun-acm` 组件新增 ecs ram authorization; - Network accessline 208
- [#1362](https://github.com/hyperf/hyperf/pull/1362) 为 `Hyperf\Pool\SimplePool\PoolFactory` 增加 `getPoolNames()` 来获取连接池的名称; - Network accessline 209
- [#1371](https://github.com/hyperf/hyperf/pull/1371) 新增 `Hyperf\DB\DB::connection()` 方法来指定要使用的连接; - Network accessline 210
- [#1384](https://github.com/hyperf/hyperf/pull/1384) 为 `gen:model` 命令新增 `property-case` 选项来设定成员属性的命名风格; - Network accessline 214
- [#1386](https://github.com/hyperf/hyperf/pull/1386) 修复异步消息投递注解当用在存在可变参数的方法上失效的问题; - Network accessline 220
- [#1305](https://github.com/hyperf/hyperf/pull/1305) 为 `hyperf\metric` 组件添加预制的 `Grafana` 面板; - Network accessline 221
- [#1328](https://github.com/hyperf/hyperf/pull/1328) 添加 `ModelRewriteInheritanceVisitor` 来重写 model 类继承的 `gen:model` 命令; - Network accessline 222
- [#1331](https://github.com/hyperf/hyperf/pull/1331) 添加 `Hyperf\LoadBalancer\LoadBalancerInterface::getNodes()`; - Network accessline 223
- [#1335](https://github.com/hyperf/hyperf/pull/1335) 为 `command` 添加 `AfterExecute` 事件; - Network accessline 224
- [#1361](https://github.com/hyperf/hyperf/pull/1361) logger 组件添加 `processors` 配置; - Network accessline 228
- [#1330](https://github.com/hyperf/hyperf/pull/1330) 修复当使用 `(new Parallel())->add($callback, $key)` 并且参数 `$key` 并非 string 类型, 返回结果将会从 0 开始排序 `$key`; - Network accessline 229
- [#1338](https://github.com/hyperf/hyperf/pull/1338) 修复当从 server 设置自己的设置时, 主 server 的配置不生效的 bug; - Network accessline 230
- [#1344](https://github.com/hyperf/hyperf/pull/1344) 修复队列在没有设置最大消息数时每次都需要校验长度的 bug; - Network accessline 234
- [#1324](https://github.com/hyperf/hyperf/pull/1324) [hyperf/async-queue](https://github.com/hyperf/async-queue) 组件不再提供默认启用 `Hyperf\AsyncQueue\Listener\QueueLengthListener`; - Network accessline 238
- [#1305](https://github.com/hyperf/hyperf/pull/1305) 优化 `hyperf\metric` 中的边界条件; - Network accessline 239
- [#1322](https://github.com/hyperf/hyperf/pull/1322) HTTP Server 自动处理 HEAD 请求并且不会在 HEAD 请求时返回 Response body; - Network accessline 243
- [#1303](https://github.com/hyperf/hyperf/pull/1303) 删除 `Hyperf\RpcServer\Router\Router` 中无用的 `$httpMethod`; - Network accessline 249
- [#1220](https://github.com/hyperf/hyperf/pull/1220) 为 Apollo 组件增加 BootProcessListener 来实现在服务启动时从 Apollo 拉取配置的功能; - Network accessline 250
- [#1292](https://github.com/hyperf/hyperf/pull/1292) 为 `Hyperf\Database\Schema\Blueprint::foreign()` 方法的返回类型增加了 `Hyperf\Database\Schema\ForeignKeyDefinition` 类型; - Network accessline 251
- [#1313](https://github.com/hyperf/hyperf/pull/1313) 为 `hyperf\crontab` 组件增加了 Command 模式支持; - Network accessline 252
- [#1321](https://github.com/hyperf/hyperf/pull/1321) 增加 [hyperf/nsq](https://github.com/hyperf/nsq) 组件,[NSQ](https://nsq.io) 是一个实时的分布式消息平台; - Network accessline 256
- [#1291](https://github.com/hyperf/hyperf/pull/1291) 修复 [hyperf/super-globals](https://github.com/hyperf/super-globals) 组件的 `$_SERVER` 存在小写键值与 PHP-FPM 不统一的问题; - Network accessline 257
- [#1308](https://github.com/hyperf/hyperf/pull/1308) 修复 [hyperf/validation](https://github.com/hyperf/validation) 组件缺失的一些翻译内容, 包括 gt, gte, ipv4, ipv6, lt, lte, mimetypes, not_regex, starts_with, uuid; - Network accessline 258
- [#1310](https://github.com/hyperf/hyperf/pull/1310) 修复服务注册在当服务同名不同协议的情况下会被覆盖的问题; - Network accessline 259
- [#1315](https://github.com/hyperf/hyperf/pull/1315) 修复 `Hyperf\AsyncQueue\Process\ConsumerProcess` 类缺失的 $config 变量; - Network accessline 265
- [#1263](https://github.com/hyperf/hyperf/pull/1263) 为 async-queue 组件增加 `QueueLength` 事件; - Network accessline 266
- [#1276](https://github.com/hyperf/hyperf/pull/1276) 为 Consul 客户端增加 ACL token 支持; - Network accessline 267
- [#1277](https://github.com/hyperf/hyperf/pull/1277) 为 [hyperf/metric](https://github.com/hyperf/metric) 组件增加 NoOp 驱动,用来临时关闭 metric 功能; - Network accessline 271
- [#1262](https://github.com/hyperf/hyperf/pull/1262) 修复 keepaliveIO 功能下 socket 会被消耗光的问题; - Network accessline 272
- [#1266](https://github.com/hyperf/hyperf/pull/1266) 修复当自定义进程存在 Timer 的情况下会无法重启的问题; - Network accessline 273
- [#1272](https://github.com/hyperf/hyperf/pull/1272) 修复 JSONRPC 下当 Request ID 为 null 时检查会失败的问题; - Network accessline 277
- [#1273](https://github.com/hyperf/hyperf/pull/1273) 优化 gRPC 客户端: - Network accessline 286
- [#1286](https://github.com/hyperf/hyperf/pull/1286) 从 require-dev 中移除 [phpstan/phpstan](https://github.com/phpstan/phpstan) 包的依赖。 - Network accessline 292
- [#1258](https://github.com/hyperf/hyperf/pull/1258) 修复 AMQP 发送心跳失败,会导致子进程 Socket 通信不可用的问题; - Network accessline 293
- [#1260](https://github.com/hyperf/hyperf/pull/1260) 修复 JSONRPC 在同一协程内,连接会混淆复用的问题; - Network accessline 299
- [#1166](https://github.com/hyperf/hyperf/pull/1166) 为 AMQP 增加 KeepaliveIO 功能; - Network accessline 300
- [#1208](https://github.com/hyperf/hyperf/pull/1208) 为 JSON-RPC 的响应增加了 `error.data.code` 值来传递 Exception Code; - Network accessline 301
- [#1208](https://github.com/hyperf/hyperf/pull/1208) 为 `Hyperf\Rpc\Contract\TransporterInterface` 增加了 `recv` 方法; - Network accessline 302
- [#1215](https://github.com/hyperf/hyperf/pull/1215) 新增 [hyperf/super-globals](https://github.com/hyperf/super-globals) 组件,用来适配一些不支持 PSR-7 的第三方包; - Network accessline 303
- [#1219](https://github.com/hyperf/hyperf/pull/1219) 为 AMQP 消费者增加 `enable` 属性,通过该属性来控制该消费者是否跟随 Server 一同启动; - Network accessline 307
- [#1208](https://github.com/hyperf/hyperf/pull/1208) 修复 Exception 和 error 在 JSON-RPC TCP Server 下无法被正确处理的问题; - Network accessline 308
- [#1208](https://github.com/hyperf/hyperf/pull/1208) 修复 JSON-RPC 没有检查 Request ID 和 Response ID 是否一致的问题; - Network accessline 309
- [#1223](https://github.com/hyperf/hyperf/pull/1223) 修复 ConfigProvider 扫描器不会扫描 composer.json 内 require-dev 的配置; - Network accessline 310
- [#1254](https://github.com/hyperf/hyperf/pull/1254) 修复执行 `init-proxy.sh` 命令在某些环境如 Alpine 下会报 bash 不存在的问题; - Network accessline 314
- [#1208](https://github.com/hyperf/hyperf/pull/1208) 优化了 JSON-RPC 组件的部分逻辑; - Network accessline 315
- [#1174](https://github.com/hyperf/hyperf/pull/1174) 调整了 `Hyperf\Utils\Parallel` 在输出异常时的格式,现在会一同打印 Trace 信息; - Network accessline 316
- [#1224](https://github.com/hyperf/hyperf/pull/1224) 允许 Aliyun ACM 配置中心的配置获取进程解析 UTF-8 字符,同时在 Worker 启动后会自动获取一次配置,以及拉取的配置现在会传递到自定义进程了; - Network accessline 317
- [#1235](https://github.com/hyperf/hyperf/pull/1235) 在 AMQP 生产者执行 declare 后释放对应的连接; - Network accessline 321
- [#1227](https://github.com/hyperf/hyperf/pull/1227) 升级 `jcchavezs/zipkin-php-opentracing` 依赖至 0.1.4 版本; - Network accessline 327
- [#1137](https://github.com/hyperf/hyperf/pull/1137) `constants` 组件增加国际化支持; - Network accessline 328
- [#1165](https://github.com/hyperf/hyperf/pull/1165) `Hyperf\HttpServer\Contract\RequestInterface` 新增 `route` 方法; - Network accessline 329
- [#1195](https://github.com/hyperf/hyperf/pull/1195) 注解 `Cacheable` 和 `CachePut` 增加最大超时时间偏移量配置; - Network accessline 330
- [#1204](https://github.com/hyperf/hyperf/pull/1204) `database` 组件增加了 `insertOrIgnore` 方法; - Network accessline 331
- [#1216](https://github.com/hyperf/hyperf/pull/1216) `RenderInterface::render()` 方法的 `$data` 参数,添加了默认值; - Network accessline 332
- [#1221](https://github.com/hyperf/hyperf/pull/1221) `swoole-tracker` 组件添加了 `traceId` 和 `spanId`; - Network accessline 336
- [#1175](https://github.com/hyperf/hyperf/pull/1175) 修复 `Hyperf\Utils\Collection::random` 当传入 `null` 时,无法正常工作的 `BUG`; - Network accessline 337
- [#1199](https://github.com/hyperf/hyperf/pull/1199) 修复使用 `Task` 注解时,参数无法使用动态变量的 `BUG`; - Network accessline 338
- [#1200](https://github.com/hyperf/hyperf/pull/1200) 修复 `metric` 组件,请求路径会携带参数的 `BUG`; - Network accessline 339
- [#1210](https://github.com/hyperf/hyperf/pull/1210) 修复验证器规则 `size` 无法作用于 `integer` 的 `BUG`; - Network accessline 343
- [#1211](https://github.com/hyperf/hyperf/pull/1211) 自动将项目名转化为 `prometheus` 的规范命名; - Network accessline 347
- [#1217](https://github.com/hyperf/hyperf/pull/1217) 将 `zendframework/zend-mime` 替换为 `laminas/laminas-mine`; - Network accessline 353
- [#1177](https://github.com/hyperf/hyperf/pull/1177) 为 `jsonrpc` 组件增加了新的协议 `jsonrpc-tcp-length-check`,并对部分代码进行了优化; - Network accessline 357
- [#1175](https://github.com/hyperf/hyperf/pull/1175) 修复 `Hyperf\Utils\Collection::random` 方法不支持传入 `null`; - Network accessline 358
- [#1178](https://github.com/hyperf/hyperf/pull/1178) 修复 `Hyperf\Database\Query\Builder::chunkById` 方法不支持元素是 `array` 的情况; - Network accessline 359
- [#1189](https://github.com/hyperf/hyperf/pull/1189) 修复 `Hyperf\Utils\Collection::operatorForWhere` 方法,`operator` 只能传入 `string` 的 BUG; - Network accessline 363
- [#1186](https://github.com/hyperf/hyperf/pull/1186) 日志配置中,只填写 `formatter.class` 的情况下,可以使用默认的 `formatter.constructor` 配置; - Network accessline 369
- [#849](https://github.com/hyperf/hyperf/pull/849) 为 hyperf/tracer 组件增加 span tag 配置功能; - Network accessline 373
- [#1142](https://github.com/hyperf/hyperf/pull/1142) 修复 `Register::resolveConnection` 会返回 null 的问题; - Network accessline 374
- [#1144](https://github.com/hyperf/hyperf/pull/1144) 修复配置文件形式下服务限流会失效的问题; - Network accessline 375
- [#1145](https://github.com/hyperf/hyperf/pull/1145) 修复 `CoroutineMemoryDriver::delKey` 方法的返回值错误的问题; - Network accessline 376
- [#1153](https://github.com/hyperf/hyperf/pull/1153) 修复验证器的 `alpha_num` 规则无法按预期运行的问题; - Network accessline 382
- [#1104](https://github.com/hyperf/hyperf/pull/1104) 修复了 Guzzle 客户端的重试中间件的状态码识别范围为 2xx; - Network accessline 383
- [#1105](https://github.com/hyperf/hyperf/pull/1105) 修复了 Retry 组件在重试尝试前不还原管道堆栈的问题; - Network accessline 384
- [#1106](https://github.com/hyperf/hyperf/pull/1106) 修复了数据库在开启 `sticky` 模式时连接回归连接池时没有重置状态的问题; - Network accessline 385
- [#1119](https://github.com/hyperf/hyperf/pull/1119) 修复 TCP 协议下的 JSONRPC Server 在解析 JSON 失败时无法正确的返回预期的 Error Response 的问题; - Network accessline 386
- [#1124](https://github.com/hyperf/hyperf/pull/1124) 修复 Session 中间件在储存当前的 URL 时,当 URL 以 `/` 结尾时会忽略斜杠的问题; - Network accessline 390
- [#1108](https://github.com/hyperf/hyperf/pull/1108) 重命名 `Hyperf\Tracer\Middleware\TraceMiddeware` 为 `Hyperf\Tracer\Middleware\TraceMiddleware`; - Network accessline 391
- [#1108](https://github.com/hyperf/hyperf/pull/1111) 升级 `Hyperf\ServiceGovernance\Listener\ServiceRegisterListener` 类的成员属性和方法的等级为 `protected`,以便更好的重写相关方法; - Network accessline 397
- [#948](https://github.com/hyperf/hyperf/pull/948) 为 DI Container 增加懒加载功能; - Network accessline 398
- [#1044](https://github.com/hyperf/hyperf/pull/1044) 为 AMQP Consumer 增加 `basic_qos` 配置; - Network accessline 399
- [#1056](https://github.com/hyperf/hyperf/pull/1056) [#1081](https://github.com/hyperf/hyperf/pull/1081) DI Container 增加 `define()` 和 `set()` 方法,同时增加 `Hyperf\Contract\ContainerInterface`; - Network accessline 400
- [#1059](https://github.com/hyperf/hyperf/pull/1059) `job.stub` 模板增加构造函数; - Network accessline 401
- [#1084](https://github.com/hyperf/hyperf/pull/1084) 支持 PHP 7.4,TrvisCI 增加 PHP 7.4 运行支持; - Network accessline 405
- [#1007](https://github.com/hyperf/hyperf/pull/1007) 修复 `vendor:: publish` 的命令返回值; - Network accessline 406
- [#1049](https://github.com/hyperf/hyperf/pull/1049) 修复 `Hyperf\Cache\Driver\RedisDriver::clear` 会有可能删除所有缓存失败的问题; - Network accessline 407
- [#1055](https://github.com/hyperf/hyperf/pull/1055) 修复 Image 验证时后缀大小写的问题; - Network accessline 408
- [#1085](https://github.com/hyperf/hyperf/pull/1085) [#1091](https://github.com/hyperf/hyperf/pull/1091) Fixed `@Retry` 注解使用时会找不到容器的问题; - Network accessline 414
- [#965](https://github.com/hyperf/hyperf/pull/965) 新增 Redis Lua 模块,用于管理 Lua 脚本; - Network accessline 415
- [#1023](https://github.com/hyperf/hyperf/pull/1023) hyperf/metric 组件的 Prometheus 驱动新增 CUSTOM_MODE 模式; - Network accessline 419
- [#1013](https://github.com/hyperf/hyperf/pull/1013) 修复 JsonRpcPoolTransporter 配置合并失败的问题; - Network accessline 420
- [#1006](https://github.com/hyperf/hyperf/pull/1006) 修复 `gen:model` 命令生成的属性的顺序; - Network accessline 424
- [#1021](https://github.com/hyperf/hyperf/pull/1012) WebSocket 客户端新增默认端口支持,根据协议默认为 80 和 443; - Network accessline 425
- [#1034](https://github.com/hyperf/hyperf/pull/1034) 去掉了 `Hyperf\Amqp\Builder\Builder` 的 `arguments` 参数的 array 类型限制,允许接受其他类型如 AmqpTable; - Network accessline 429
- [#1014](https://github.com/hyperf/hyperf/pull/1014) 优化 `Command::execute` 的返回值类型; - Network accessline 430
- [#1022](https://github.com/hyperf/hyperf/pull/1022) 提供更清晰友好的连接池报错信息; - Network accessline 431
- [#1039](https://github.com/hyperf/hyperf/pull/1039) 在 CoreMiddleware 中自动设置最新的 ServerRequest 对象到 Context; - Network accessline 437
- [#860](https://github.com/hyperf/hyperf/pull/860) 新增 [hyperf/retry](https://github.com/hyperf/retry) 组件; - Network accessline 438
- [#952](https://github.com/hyperf/hyperf/pull/952) 新增 ThinkTemplate 视图引擎支持; - Network accessline 439
- [#973](https://github.com/hyperf/hyperf/pull/973) 新增 JSON RPC 在 TCP 协议下的连接池支持,通过 `Hyperf\JsonRpc\JsonRpcPoolTransporter` 来使用连接池版本; - Network accessline 440
- [#976](https://github.com/hyperf/hyperf/pull/976) 为 `hyperf/amqp` 组件新增 `close_on_destruct` 选项参数,用来控制代码在执行析构函数时是否主动去关闭连接; - Network accessline 444
- [#944](https://github.com/hyperf/hyperf/pull/944) 将组件内所有使用 `@Listener` 和 `@Process` 注解来注册的改成通过 `ConfigProvider`来注册; - Network accessline 445
- [#977](https://github.com/hyperf/hyperf/pull/977) 调整 `init-proxy.sh` 命令的行为,改成只删除 `runtime/container` 目录; - Network accessline 449
- [#955](https://github.com/hyperf/hyperf/pull/955) 修复 `hyperf/db` 组件的 `port` 和 `charset` 参数无效的问题; - Network accessline 450
- [#956](https://github.com/hyperf/hyperf/pull/956) 修复模型缓存中使用到`RedisHandler::incr` 在集群模式下会失败的问题; - Network accessline 451
- [#966](https://github.com/hyperf/hyperf/pull/966) 修复当在非 Worker 进程环境下使用分页器会报错的问题; - Network accessline 452
- [#968](https://github.com/hyperf/hyperf/pull/968) 修复当 `classes` 和 `annotations` 两种 Aspect 切入模式同时存在于一个类时,其中一个可能会失效的问题; - Network accessline 453
- [#980](https://github.com/hyperf/hyperf/pull/980) 修复 Session 组件内 `migrate`, `save` 核 `has` 方法无法使用的问题; - Network accessline 454
- [#982](https://github.com/hyperf/hyperf/pull/982) 修复 `Hyperf\GrpcClient\GrpcClient::yield` 在获取 Channel Pool 时没有通过正确的获取方式去获取的问题; - Network accessline 455
- [#987](https://github.com/hyperf/hyperf/pull/987) 修复通过 `gen:command` 命令生成的命令类缺少调用 `parent::configure()` 方法的问题; - Network accessline 459
- [#991](https://github.com/hyperf/hyperf/pull/991) 优化 `Hyperf\DbConnection\ConnectionResolver::connection`的异常情况处理; - Network accessline 465
- [#827](https://github.com/hyperf/hyperf/pull/827) 新增了极简的高性能的 DB 组件; - Network accessline 466
- [#905](https://github.com/hyperf/hyperf/pull/905) 视图组件增加了 `twig` 模板引擎; - Network accessline 467
- [#911](https://github.com/hyperf/hyperf/pull/911) 定时任务支持多实例情况下,只运行单一实例的定时任务; - Network accessline 468
- [#913](https://github.com/hyperf/hyperf/pull/913) 增加监听器 `Hyperf\ExceptionHandler\Listener\ErrorExceptionHandler`; - Network accessline 469
- [#921](https://github.com/hyperf/hyperf/pull/921) 新增 `Session` 组件; - Network accessline 470
- [#931](https://github.com/hyperf/hyperf/pull/931) 阿波罗配置中心增加 `strict_mode`,自动将配置转化成对应数据类型; - Network accessline 471
- [#933](https://github.com/hyperf/hyperf/pull/933) 视图组件增加了 `plates` 模板引擎; - Network accessline 472
- [#937](https://github.com/hyperf/hyperf/pull/937) Nats 组件添加消费者消费和订阅事件; - Network accessline 473
- [#941](https://github.com/hyperf/hyperf/pull/941) 新增 `Zookeeper` 配置中心; - Network accessline 477
- [#934](https://github.com/hyperf/hyperf/pull/934) 修改 `WaitGroup` 继承 `\Swoole\Coroutine\WaitGroup`; - Network accessline 481
- [#897](https://github.com/hyperf/hyperf/pull/897) 修复 `Nats` 消费者,`pool` 配置无效的 BUG; - Network accessline 482
- [#901](https://github.com/hyperf/hyperf/pull/901) 修复 `GraphQL` 组件,`Factory` 注解无法正常使用的 BUG; - Network accessline 483
- [#903](https://github.com/hyperf/hyperf/pull/903) 修复添加 `hyperf/rpc-client` 依赖后,`init-proxy` 脚本无法正常停止的 BUG; - Network accessline 484
- [#904](https://github.com/hyperf/hyperf/pull/904) 修复监听器监听 `Hyperf\Framework\Event\BeforeMainServerStart` 事件时,无法使用 `IO` 操作的 BUG; - Network accessline 485
- [#906](https://github.com/hyperf/hyperf/pull/906) 修复 `Hyperf\HttpMessage\Server\Request` 端口获取有误的 BUG; - Network accessline 486
- [#907](https://github.com/hyperf/hyperf/pull/907) 修复 `Nats` 组件 `requestSync` 方法,超时时间不准确的 BUG; - [#909](https://github.com/hyperf/hyperf/pull/909) 修复 `Parallel` 内逻辑抛错后,无法正常停止的 BUG; - [#925](https://github.com/hyperf/hyperf/pull/925) 修复因 `S - Network accessline 487
- [#909](https://github.com/hyperf/hyperf/pull/909) 修复 `Parallel` 内逻辑抛错后,无法正常停止的 BUG; - [#925](https://github.com/hyperf/hyperf/pull/925) 修复因 `Socket` 无法正常建立,导致进程频繁重启的 BUG; - [#932](https://github.com/hyperf/hyperf/pull/932) 修复 `Translator: - Network accessline 488
- [#925](https://github.com/hyperf/hyperf/pull/925) 修复因 `Socket` 无法正常建立,导致进程频繁重启的 BUG; - Network accessline 489
- [#932](https://github.com/hyperf/hyperf/pull/932) 修复 `Translator::setLocale` 在协程环境下,数据混淆的 BUG; - Network accessline 490
- [#940](https://github.com/hyperf/hyperf/pull/940) 修复 `WebSocketClient::push` 方法 `finish` 参数类型错误; - Network accessline 494
- [#907](https://github.com/hyperf/hyperf/pull/907) 优化 `Nats` 消费者频繁重启; - Network accessline 495
- [#928](https://github.com/hyperf/hyperf/pull/928) `Hyperf\ModelCache\Cacheable::query` 批量修改数据时,可以删除对应缓存; - Network accessline 496
- [#936](https://github.com/hyperf/hyperf/pull/936) 优化调用模型缓存 `increment` 时,可能因并发情况导致的数据有错; - Network accessline 502
- [#812](https://github.com/hyperf/hyperf/pull/812) 新增计划任务在集群下仅执行一次的支持; - Network accessline 503
- [#820](https://github.com/hyperf/hyperf/pull/820) 新增 hyperf/nats 组件; - Network accessline 504
- [#832](https://github.com/hyperf/hyperf/pull/832) 新增 `Hyperf\Utils\Codec\Json`; - Network accessline 505
- [#833](https://github.com/hyperf/hyperf/pull/833) 新增 `Hyperf\Utils\Backoff`; - Network accessline 506
- [#852](https://github.com/hyperf/hyperf/pull/852) 为 `Hyperf\Utils\Parallel` 新增 `clear()` 方法来清理所有已添加的回调; - Network accessline 507
- [#854](https://github.com/hyperf/hyperf/pull/854) 新增 `Hyperf\GraphQL\GraphQLMiddleware` 用于解析 GraphQL 请求; - Network accessline 508
- [#859](https://github.com/hyperf/hyperf/pull/859) 新增 Consul 集群的支持,现在可以从 Consul 集群中拉取服务提供者的节点信息; - Network accessline 509
- [#873](https://github.com/hyperf/hyperf/pull/873) 新增 Redis 集群的客户端支持; - Network accessline 513
- [#831](https://github.com/hyperf/hyperf/pull/831) 修复 Redis 客户端连接在 Redis Server 重启后不会自动重连的问题; - Network accessline 514
- [#835](https://github.com/hyperf/hyperf/pull/835) 修复 `Request::inputs` 方法的默认值参数与预期效果不一致的问题; - Network accessline 515
- [#841](https://github.com/hyperf/hyperf/pull/841) 修复数据库迁移在多数据库的情况下连接无效的问题; - Network accessline 516
- [#844](https://github.com/hyperf/hyperf/pull/844) 修复 Composer 阅读器不支持根命名空间的用法的问题; - Network accessline 517
- [#846](https://github.com/hyperf/hyperf/pull/846) 修复 Redis 客户端的 `scan`, `hScan`, `zScan`, `sScan` 无法使用的问题; - Network accessline 518
- [#850](https://github.com/hyperf/hyperf/pull/850) 修复 Logger group 在 name 一样时不生效的问题; - Network accessline 522
- [#832](https://github.com/hyperf/hyperf/pull/832) 优化了 Response 对象在转 JSON 格式时的异常处理逻辑; - Network accessline 523
- [#840](https://github.com/hyperf/hyperf/pull/840) 使用 `\Swoole\Timer::*` 来替代 `swoole_timer_*` 函数; - Network accessline 524
- [#859](https://github.com/hyperf/hyperf/pull/859) 优化了 RPC 客户端去 Consul 获取健康的节点信息的逻辑; - Network accessline 530
- [#778](https://github.com/hyperf/hyperf/pull/778) `Hyperf\Testing\Client` 新增 `PUT` 和 `DELETE`方法; - Network accessline 531
- [#784](https://github.com/hyperf/hyperf/pull/784) 新增服务监控组件; - Network accessline 532
- [#795](https://github.com/hyperf/hyperf/pull/795) `AbstractProcess` 增加 `restartInterval` 参数,允许子进程异常或正常退出后,延迟重启; - Network accessline 533
- [#804](https://github.com/hyperf/hyperf/pull/804) `Command` 增加事件 `BeforeHandle` `AfterHandle` 和 `FailToHandle`; - Network accessline 537
- [#793](https://github.com/hyperf/hyperf/pull/793) `Pool::getConnectionsInChannel` 方法由 `protected` 改为 `public`. - Network accessline 538
- [#811](https://github.com/hyperf/hyperf/pull/811) 命令 `di:init-proxy` 不再主动清理代理缓存,如果想清理缓存请使用命令 `vendor/bin/init-proxy.sh`; - Network accessline 542
- [#779](https://github.com/hyperf/hyperf/pull/779) 修复 `JPG` 文件验证不通过的问题; - Network accessline 543
- [#787](https://github.com/hyperf/hyperf/pull/787) 修复 `db:seed` 参数 `--class` 多余,导致报错的问题; - Network accessline 544
- [#795](https://github.com/hyperf/hyperf/pull/795) 修复自定义进程在异常抛出后,无法正常重启的 BUG; - Network accessline 545
- [#796](https://github.com/hyperf/hyperf/pull/796) 修复 `etcd` 配置中心 `enable` 即时设为 `false`,在项目启动时,依然会拉取配置的 BUG; - Network accessline 549
- [#781](https://github.com/hyperf/hyperf/pull/781) 可以根据国际化组件配置发布验证器语言包到规定位置; - Network accessline 550
- [#796](https://github.com/hyperf/hyperf/pull/796) 优化 `ETCD` 客户端,不会多次创建 `HandlerStack`; - Network accessline 551
- [#797](https://github.com/hyperf/hyperf/pull/797) 优化子进程重启 - Network accessline 557
- [#745](https://github.com/hyperf/hyperf/pull/745) 为 `gen:model` 命令增加 `with-comments` 选项,以标记是否生成字段注释; - Network accessline 558
- [#747](https://github.com/hyperf/hyperf/pull/747) 为 AMQP 消费者增加 `AfterConsume`, `BeforeConsume`, `FailToConsume` 事件; - Network accessline 559
- [#762](https://github.com/hyperf/hyperf/pull/762) 为 Parallel 特性增加协程控制功能; - Network accessline 563
- [#767](https://github.com/hyperf/hyperf/pull/767) 重命名 `AbstractProcess` 的 `running` 属性名为 `listening`; - Network accessline 567
- [#741](https://github.com/hyperf/hyperf/pull/741) 修复执行 `db:seed` 命令缺少文件名报错的问题; - Network accessline 568
- [#748](https://github.com/hyperf/hyperf/pull/748) 修复 `SymfonyNormalizer` 不处理 `array` 类型数据的问题; - Network accessline 569
- [#769](https://github.com/hyperf/hyperf/pull/769) 修复当 JSON RPC 响应的结果的 result 和 error 属性为 null 时会抛出一个无效请求的问题; - Network accessline 575
- [#722](https://github.com/hyperf/hyperf/pull/722) 为 AMQP Consumer 新增 `concurrent.limit` 配置来对协程消费进行速率限制; - Network accessline 579
- [#678](https://github.com/hyperf/hyperf/pull/678) 为 `gen:model` 命令增加 `ignore-tables` 参数,同时默认屏蔽 `migrations` 表,即 `migrations` 表对应的模型在执行 `gen:model` 命令时不会生成; - Network accessline 583
- [#694](https://github.com/hyperf/hyperf/pull/694) 修复 `Hyperf\Validation\Request\FormRequest` 的 `validationData` 方法不包含上传的文件的问题; - [#700](https://github.com/hyperf/hyperf/pull/700) 修复 `Hyperf\HttpServer\Contract\ResponseInterface` 的 `downlo - Network accessline 584
- [#700](https://github.com/hyperf/hyperf/pull/700) 修复 `Hyperf\HttpServer\Contract\ResponseInterface` 的 `download` 方法不能按预期运行的问题; - Network accessline 585
- [#701](https://github.com/hyperf/hyperf/pull/701) 修复自定义进程在出现未捕获的异常时不会自动重启的问题; - Network accessline 586
- [#704](https://github.com/hyperf/hyperf/pull/704) 修复 `Hyperf\Validation\Middleware\ValidationMiddleware` 在 action 参数没有定义参数类型时会报错的问题; - Network accessline 587
- [#713](https://github.com/hyperf/hyperf/pull/713) 修复当开启了注解缓存功能是,`ignoreAnnotations` 不能按预期工作的问题; - Network accessline 588
- [#717](https://github.com/hyperf/hyperf/pull/717) 修复 `getValidatorInstance` 方法会重复创建验证器对象的问题; - Network accessline 589
- [#724](https://github.com/hyperf/hyperf/pull/724) 修复 `db:seed` 命令在没有传 `database` 参数时会报错的问题; - Network accessline 590
- [#729](https://github.com/hyperf/hyperf/pull/729) 修正组件配置项 `db:model` 为 `gen:model`; - Network accessline 591
- [#737](https://github.com/hyperf/hyperf/pull/737) 修复非 Worker 进程下无法使用 Tracer 组件来追踪调用链的问题; - Network accessline 597
- [#664](https://github.com/hyperf/hyperf/pull/664) 调整通过 `gen:request` 命令生成 FormRequest 时 `authorize` 方法的默认返回值; - Network accessline 598
- [#665](https://github.com/hyperf/hyperf/pull/665) 修复启动时永远会自动生成代理类的问题; - Network accessline 599
- [#667](https://github.com/hyperf/hyperf/pull/667) 修复当访问一个不存在的路由时 `Hyperf\Validation\Middleware\ValidationMiddleware` 会抛出异常的问题; - Network accessline 600
- [#672](https://github.com/hyperf/hyperf/pull/672) 修复当 Action 方法上的参数类型为非对象类型时 `Hyperf\Validation\Middleware\ValidationMiddleware` 会抛出一个未捕获的异常的问题; - Network accessline 601
- [#674](https://github.com/hyperf/hyperf/pull/674) 修复使用 `gen:model` 命令从数据库生成模型时模型表名错误的问题; - Network accessline 607
- [#401](https://github.com/hyperf/hyperf/pull/401) 新增了 `Hyperf\HttpServer\Router\Dispatched` 对象来储存解析的路由信息,在用户中间件之前便解析完成以便后续的使用,同时也修复了路由里带参时中间件失效的问题; - Network accessline 608
- [#402](https://github.com/hyperf/hyperf/pull/402) 新增 `@AsyncQueueMessage` 注解,通过定义此注解在方法上,表明这个方法的实际运行逻辑是投递给 Async-Queue 队列去消费; - Network accessline 609
- [#418](https://github.com/hyperf/hyperf/pull/418) 允许发送 WebSocket 消息到任意的 fd,即使当前的 Worker 进程不持有对应的 fd,框架会自动进行进程间通讯来实现发送; - Network accessline 610
- [#420](https://github.com/hyperf/hyperf/pull/420) 为数据库模型增加新的事件机制,与 PSR-15 的事件调度器相配合,可以解耦的定义 Listener 来监听模型事件; - Network accessline 611
- [#429](https://github.com/hyperf/hyperf/pull/429) [#643](https://github.com/hyperf/hyperf/pull/643) 新增 Validation 表单验证器组件,这是一个衍生于 [illuminate/validation](https://github.com/illuminate/validation) 的组件,感谢 Laravel 开发组提供如此好用的验证器组件,; - Network accessline 612
- [#441](https://github.com/hyperf/hyperf/pull/441) 当 Redis 连接处于低使用频率的情况下自动关闭空闲连接; - Network accessline 613
- [#478](https://github.com/hyperf/hyperf/pull/441) 更好的适配 OpenTracing 协议,同时适配 [Jaeger](https://www.jaegertracing.io/),Jaeger 是一款优秀的开源的端对端分布式调用链追踪系统; - Network accessline 614
- [#500](https://github.com/hyperf/hyperf/pull/499) 为 `Hyperf\HttpServer\Contract\ResponseInterface` 增加链式方法调用支持,解决调用了代理方法的方法后无法再调用原始方法的问题; - Network accessline 615
- [#523](https://github.com/hyperf/hyperf/pull/523) 为 `gen:model` 命令新增了 `table-mapping` 选项; - Network accessline 616
- [#555](https://github.com/hyperf/hyperf/pull/555) 新增了一个全局函数 `swoole_hook_flags` 来获取由常量 `SWOOLE_HOOK_FLAGS` 所定义的 Runtime Hook 等级,您可以在 `bin/hyperf.php` 通过 `! defined('SWOOLE_HOOK_FLAGS') && define('SWOOLE_HOOK_FLAGS', SWOOLE_HOOK_ALL);` 的方式 - Network accessline 617
- [#596](https://github.com/hyperf/hyperf/pull/596) 为`@Inject` 注解增加了 `required` 参数,当您定义 `@Inject(required=false)` 注解到一个成员属性上,那么当该依赖项不存在时也不会抛出 `Hyperf\Di\Exception\NotFoundException` 异常,而是以默认值 `null` 来注入, `required` 参数的默认值为 `true`,当在构造器注入的 - Network accessline 618
- [#597](https://github.com/hyperf/hyperf/pull/597) 为 AsyncQueue 组件的消费者增加 `Concurrent` 来控制消费速率; - Network accessline 619
- [#599](https://github.com/hyperf/hyperf/pull/599) 为 AsyncQueue 组件的消费者增加根据当前重试次数来设定该消息的重试等待时长的功能,可以为消息设置阶梯式的重试等待; - Network accessline 620
- [#619](https://github.com/hyperf/hyperf/pull/619) 为 Guzzle 客户端增加 HandlerStackFactory 类,以便更便捷地创建一个 HandlerStack; - Network accessline 621
- [#620](https://github.com/hyperf/hyperf/pull/620) 为 AsyncQueue 组件的消费者增加自动重启的机制; - Network accessline 622
- [#629](https://github.com/hyperf/hyperf/pull/629) 允许通过配置文件的形式为 Apollo 客户端定义 `clientIp`, `pullTimeout`, `intervalTimeout` 配置; - Network accessline 623
- [#647](https://github.com/hyperf/hyperf/pull/647) 根据 server 的配置,自动为 TCP Response 追加 `eof`; - Network accessline 624
- [#648](https://github.com/hyperf/hyperf/pull/648) 为 AMQP Consumer 增加 `nack` 的返回类型,当消费逻辑返回 `Hyperf\Amqp\Result::NACK` 时抽象消费者会以 `basic_nack` 方法来响应消息; - Network accessline 625
- [#654](https://github.com/hyperf/hyperf/pull/654) 增加所有 Swoole Event 的默认回调和对应的 Hyperf 事件; - Network accessline 629
- [#437](https://github.com/hyperf/hyperf/pull/437) `Hyperf\Testing\Client` 在遇到异常时不再直接抛出异常而是交给 ExceptionHandler 流程处理; - Network accessline 630
- [#463](https://github.com/hyperf/hyperf/pull/463) 简化了 `container.php` 文件及优化了注解缓存机制; - Network accessline 649
- [#486](https://github.com/hyperf/hyperf/pull/486) `Hyperf\HttpMessage\Server\Request` 的 `getParsedBody` 方法现在可以直接处理 JSON 格式的数据了; - Network accessline 650
- [#523](https://github.com/hyperf/hyperf/pull/523) 调整 `gen:model` 命令生成的模型类名默认为单数,如果表名为复数,则默认生成的类名为单数; - Network accessline 651
- [#614](https://github.com/hyperf/hyperf/pull/614) [#617](https://github.com/hyperf/hyperf/pull/617) 调整了 ConfigProvider 类的结构, 同时将 `config/dependencies.php` 文件移动到了 `config/autoload/dependencies.php` 内,且文件结构去除了 `dependencies` 层,此后也意味着您也可以将 ` - Network accessline 680
- [#630](https://github.com/hyperf/hyperf/pull/630) 变更了 `Hyperf\HttpServer\CoreMiddleware` 类的实例化方式,使用 `make()` 来替代了 `new`; - Network accessline 681
- [#631](https://github.com/hyperf/hyperf/pull/631) 变更了 AMQP Consumer 的实例化方式,使用 `make()` 来替代了 `new`; - Network accessline 682
- [#637](https://github.com/hyperf/hyperf/pull/637) 调整了 `Hyperf\Contract\OnMessageInterface` 和 `Hyperf\Contract\OnOpenInterface` 的第一个参数的类型约束, 使用 `Swoole\WebSocket\Server` 替代 `Swoole\Server`; - Network accessline 683
- [#638](https://github.com/hyperf/hyperf/pull/638) 重命名了 `db:model` 命令为 `gen:model` 命令,同时增加了一个 Visitor 来优化创建的 `$connection` 成员属性,如果要创建的模型类的 `$connection` 属性的值与继承的父类一致,那么创建的模型类将不会包含此属性; - Network accessline 687
- [#401](https://github.com/hyperf/hyperf/pull/401) 移除了 `Hyperf\JsonRpc\HttpServerFactory`, `Hyperf\HttpServer\ServerFactory`, `Hyperf\GrpcServer\ServerFactory` 类; - Network accessline 688
- [#402](https://github.com/hyperf/hyperf/pull/402) 移除了弃用的 `AsyncQueue::delay` 方法; - Network accessline 689
- [#563](https://github.com/hyperf/hyperf/pull/563) 移除了弃用的 `Hyperf\Server\ServerInterface::SERVER_TCP` 常量,使用 `Hyperf\Server\ServerInterface::SERVER_BASE` 来替代; - Network accessline 690
- [#602](https://github.com/hyperf/hyperf/pull/602) 移除了 `Hyperf\Utils\Coroutine\Concurrent` 的 `timeout` 参数; - Network accessline 691
- [#612](https://github.com/hyperf/hyperf/pull/612) 移除了 RingPHP Handler 里没有使用到的 `$url` 变量; - Network accessline 692
- [#616](https://github.com/hyperf/hyperf/pull/616) [#618](https://github.com/hyperf/hyperf/pull/618) 移除了 Guzzle 里一些无用的代码; - Network accessline 696
- [#644](https://github.com/hyperf/hyperf/pull/644) 优化了注解扫描的流程,分开 `app` 和 `vendor` 两部分来扫描注解,大大减少了用户的扫描耗时; - Network accessline 697
- [#653](https://github.com/hyperf/hyperf/pull/653) 优化了 Swoole shortname 的检测逻辑,现在的检测逻辑更加贴合 Swoole 的实际配置场景,也不只是 `swoole.use_shortname = "Off"` 才能通过检测了; - Network accessline 701
- [#448](https://github.com/hyperf/hyperf/pull/448) 修复了当 HTTP Server 或 WebSocket Server 存在时,TCP Server 有可能无法启动的问题; - Network accessline 702
- [#623](https://github.com/hyperf/hyperf/pull/623) 修复了当传递一个 `null` 值到代理类的方法参数时,方法仍然会获取方法默认值的问题;
skills/hyperf/references/zh-cn/changelog/2.0.md
- Network accessline 7
- [#3015](https://github.com/hyperf/hyperf/pull/3015) 为 `socketio-server` 增加了可以自动清理垃圾的机制。 - Network accessline 8
- [#3030](https://github.com/hyperf/hyperf/pull/3030) 新增了方法 `ProceedingJoinPoint::getInstance()`,可以允许在使用 `AOP` 时,拿到被切入的实例。 - Network accessline 12
- [#3011](https://github.com/hyperf/hyperf/pull/3011) 优化 `hyperf/tracer` 组件,可以在链路追踪中记录异常信息。 - Network accessline 18
- [#2978](https://github.com/hyperf/hyperf/pull/2980) 修复当没有引用 `hyperf/contract` 时,`hyperf/snowflake` 组件会无法正常使用的问题。 - Network accessline 19
- [#2983](https://github.com/hyperf/hyperf/pull/2983) 修复使用协程风格服务时,常量 `SWOOLE_HOOK_FLAGS` 无法生效的问题。 - Network accessline 20
- [#2993](https://github.com/hyperf/hyperf/pull/2993) 修复方法 `Arr::merge()` 入参 `$array1` 为空时,会将关联数组,错误的转化为索引数组的问题。 - Network accessline 24
- [#2973](https://github.com/hyperf/hyperf/pull/2973) 支持自定义的 `HTTP` 状态码。 - Network accessline 25
- [#2992](https://github.com/hyperf/hyperf/pull/2992) 优化组件 `hyperf/validation` 的依赖关系,移除 `hyperf/devtool` 组件。 - Network accessline 31
- [#2872](https://github.com/hyperf/hyperf/pull/2872) 新增 `hyperf/phar` 组件,用于将 `Hyperf` 项目打包成 `phar`。 - Network accessline 35
- [#2952](https://github.com/hyperf/hyperf/pull/2952) 修复 `Nacos` 配置中心,在协程风格服务中无法正常使用的问题。 - Network accessline 39
- [#2934](https://github.com/hyperf/hyperf/pull/2934) 变更配置文件 `scout.php`,默认使用 `Elasticsearch` 索引作为模型索引。 - Network accessline 40
- [#2958](https://github.com/hyperf/hyperf/pull/2958) 变更 `view` 组件默认的渲染引擎为 `NoneEngine`。 - Network accessline 44
- [#2951](https://github.com/hyperf/hyperf/pull/2951) 优化 `model-cache` 组件,使其执行完多次事务后,只会删除一次缓存。 - Network accessline 45
- [#2953](https://github.com/hyperf/hyperf/pull/2953) 隐藏命令行因执行 `exit` 导致的异常 `Swoole\ExitException`。 - Network accessline 46
- [#2963](https://github.com/hyperf/hyperf/pull/2963) 当异步风格服务使用 `SWOOLE_BASE` 时,会从默认的事件回调中移除 `onStart` 事件。 - Network accessline 52
- [#2896](https://github.com/hyperf/hyperf/pull/2896) 允许 `view-engine` 组件配置自定义加载类组件和匿名组件。 - Network accessline 53
- [#2921](https://github.com/hyperf/hyperf/pull/2921) 为 `Parallel` 增加 `count()` 方法,返回同时执行的个数。 - Network accessline 57
- [#2913](https://github.com/hyperf/hyperf/pull/2913) 修复使用 `ORM` 中的 `with` 预加载逻辑时,会因循环依赖导致内存泄露的问题。 - Network accessline 58
- [#2915](https://github.com/hyperf/hyperf/pull/2915) 修复 `WebSocket` 工作进程会因 `onMessage` or `onClose` 回调失败,导致进程退出的问题。 - Network accessline 59
- [#2927](https://github.com/hyperf/hyperf/pull/2927) 修复验证器规则 `alpha_dash` 不支持 `int` 的问题。 - Network accessline 63
- [#2918](https://github.com/hyperf/hyperf/pull/2918) 当使用 `watcher` 组件时,不可以开启 `daemonize`。 - Network accessline 64
- [#2930](https://github.com/hyperf/hyperf/pull/2930) 更新 `php-amqplib` 组件最低版本由 `v2.7` 到 `v2.9.2`。 - Network accessline 68
- [#2931](https://github.com/hyperf/hyperf/pull/2931) 判断控制器方法是否存在时,使用实际从容器中得到的对象,而非命名空间。 - Network accessline 74
- [#2857](https://github.com/hyperf/hyperf/pull/2857) 为 `service-governance` 组件新增 `Consul` 的 `ACL Token` 支持。 - Network accessline 75
- [#2870](https://github.com/hyperf/hyperf/pull/2870) 为脚本 `vendor:publish` 支持发布配置目录的能力。 - Network accessline 76
- [#2875](https://github.com/hyperf/hyperf/pull/2875) 为 `watcher` 组件新增可选项 `no-restart`,允许动态修改注解缓存,但不重启服务。 - Network accessline 77
- [#2883](https://github.com/hyperf/hyperf/pull/2883) 为 `scout` 组件数据导入脚本,增加可选项 `--chunk` 和 `--column|c`,允许用户指定任一字段,进行数据插入,解决偏移量过大导致查询效率慢的问题。 - Network accessline 78
- [#2891](https://github.com/hyperf/hyperf/pull/2891) 为 `crontab` 组件新增可用于发布的配置文件。 - Network accessline 82
- [#2874](https://github.com/hyperf/hyperf/pull/2874) 修复在使用 `watcher` 组件时, `scan.ignore_annotations` 配置不生效的问题。 - Network accessline 83
- [#2878](https://github.com/hyperf/hyperf/pull/2878) 修复 `nsq` 组件中,`nsqd` 配置无法正常工作的问题。 - Network accessline 87
- [#2851](https://github.com/hyperf/hyperf/pull/2851) 修改 `view` 组件默认的配置文件,使用 `view-engine` 引擎,而非第三方 `blade` 引擎。 - Network accessline 91
- [#2785](https://github.com/hyperf/hyperf/pull/2785) 优化 `watcher` 组件,使其异常信息更加人性化。 - Network accessline 92
- [#2861](https://github.com/hyperf/hyperf/pull/2861) 优化 `Guzzle Coroutine Handler`,当其 `statusCode` 小于 `0` 时,抛出对应异常。 - Network accessline 93
- [#2868](https://github.com/hyperf/hyperf/pull/2868) 优化 `Guzzle` 的 `sink` 配置,使其支持传入 `resource`。 - Network accessline 99
- [#2824](https://github.com/hyperf/hyperf/pull/2824) 为 `Hyperf\Database\Query\Builder` 增加方法 `simplePaginate()`。 - Network accessline 103
- [#2820](https://github.com/hyperf/hyperf/pull/2820) 修复使用 `fanout` 交换机时,`AMQP` 消费者无法正常工作的问题。 - Network accessline 104
- [#2831](https://github.com/hyperf/hyperf/pull/2831) 修复 `AMQP` 连接会被客户端意外关闭的问题。 - Network accessline 105
- [#2848](https://github.com/hyperf/hyperf/pull/2848) 修复在 `defer` 中使用数据库组件时,会导致数据库连接会同时被其他协程绑定的问题。 - Network accessline 109
- [#2824](https://github.com/hyperf/hyperf/pull/2824) 修改 `Hyperf\Database\Query\Builder` 方法 `paginate()` 返回值类型,由 `PaginatorInterface` 变更为 `LengthAwarePaginatorInterface`。 - Network accessline 113
- [#2766](https://github.com/hyperf/hyperf/pull/2766) 优化 `Tracer` 组件,在抛出异常的情况下,也可以执行 `finish` 方法,记录链路。 - Network accessline 114
- [#2805](https://github.com/hyperf/hyperf/pull/2805) 优化 `Nacos` 进程,可以安全停止。 - Network accessline 115
- [#2821](https://github.com/hyperf/hyperf/pull/2821) 优化工具类 `Json` 和 `Xml`,使其抛出一致的异常。 - Network accessline 116
- [#2827](https://github.com/hyperf/hyperf/pull/2827) 优化 `Hyperf\Server\ServerConfig`,解决方法 `__set` 因返回值不为 `void`,导致不兼容 `PHP8` 的问题。 - Network accessline 117
- [#2839](https://github.com/hyperf/hyperf/pull/2839) 优化 `Hyperf\Database\Schema\ColumnDefinition` 的注释。 - Network accessline 123
- [#2794](https://github.com/hyperf/hyperf/pull/2794) [#2802](https://github.com/hyperf/hyperf/pull/2802) 为 `Session` 组件新增配置项 `options.cookie_lifetime`, 允许用户自己设置 `Cookies` 的超时时间。 - Network accessline 127
- [#2783](https://github.com/hyperf/hyperf/pull/2783) 修复 `NSQ` 消费者无法在协程风格下正常使用的问题。 - Network accessline 128
- [#2788](https://github.com/hyperf/hyperf/pull/2788) 修复非静态方法 `__handlePropertyHandler()` 在代理类中,被静态调用的问题。 - Network accessline 129
- [#2790](https://github.com/hyperf/hyperf/pull/2790) 修复 `ETCD` 配置中心,`BootProcessListener` 监听器无法在协程风格下正常使用的问题。 - Network accessline 130
- [#2803](https://github.com/hyperf/hyperf/pull/2803) 修复当 `Request` 无法实例化时,`HTTP` 响应数据被清除的问题。 - Network accessline 131
- [#2807](https://github.com/hyperf/hyperf/pull/2807) 修复当存在重复的中间件时,中间件的表现会与预期不符的问题。 - Network accessline 135
- [#2750](https://github.com/hyperf/hyperf/pull/2750) 优化 `Scout` 组件,当没有配置搜索引擎 `index` 或 `Elasticsearch` 版本高于 `7.0` 时,使用 `index` 而非 `type` 作为模型的搜索条件。 - Network accessline 141
- [#2752](https://github.com/hyperf/hyperf/pull/2752) 为注解 `@AutoController` `@Controller` 和 `@Mapping` 添加 `options` 参数,用于设置路由元数据。 - Network accessline 145
- [#2768](https://github.com/hyperf/hyperf/pull/2768) 修复 `WebSocket` 握手失败时导致内存泄露的问题。 - Network accessline 146
- [#2777](https://github.com/hyperf/hyperf/pull/2777) 修复低版本 `redis` 扩展,`RedisCluster` 构造函数 `$auth` 不支持 `null`,导致报错的问题。 - Network accessline 147
- [#2779](https://github.com/hyperf/hyperf/pull/2779) 修复因没有设置 `translation` 配置文件导致服务启动失败的问题。 - Network accessline 151
- [#2765](https://github.com/hyperf/hyperf/pull/2765) 变更 `Concurrent` 类中创建协程逻辑,由方法 `Hyperf\Utils\Coroutine::create()` 代替原来的 `Swoole\Coroutine::create()`。 - Network accessline 155
- [#2347](https://github.com/hyperf/hyperf/pull/2347) 为 `AMQP` 的 `ConsumerMessage` 增加参数 `$waitTimeout`,用于在协程风格服务中,安全停止服务。 - Network accessline 161
- [#2625](https://github.com/hyperf/hyperf/pull/2625) 新增 `Hyperf\Tracer\Aspect\JsonRpcAspect`, 可以让 `Tracer` 组件支持 `JsonRPC` 的链路追踪。 - Network accessline 162
- [#2709](https://github.com/hyperf/hyperf/pull/2709) [#2733](https://github.com/hyperf/hyperf/pull/2733) 为 `Model` 新增了对应的 `@mixin` 注释,提升模型的静态方法提示能力。 - Network accessline 163
- [#2726](https://github.com/hyperf/hyperf/pull/2726) [#2733](https://github.com/hyperf/hyperf/pull/2733) 为 `gen:model` 脚本增加可选项 `--with-ide`, 可以生成对应的 `IDE` 文件。 - Network accessline 164
- [#2737](https://github.com/hyperf/hyperf/pull/2737) 新增 [view-engine](https://github.com/hyperf/view-engine) 组件,可以不需要在 `Task` 进程中渲染页面。 - Network accessline 168
- [#2719](https://github.com/hyperf/hyperf/pull/2719) 修复 `Arr::merge` 会因 `array1` 中不包含 `array2` 中存在的 `$key` 时,导致的报错问题。 - Network accessline 169
- [#2723](https://github.com/hyperf/hyperf/pull/2723) 修复 `Paginator::resolveCurrentPath` 无法正常工作的问题。 - Network accessline 173
- [#2746](https://github.com/hyperf/hyperf/pull/2746) 优化 `@Task` 注解,只会在 `worker` 进程中执行时,会投递到 `task` 进程执行对应逻辑,其他进程则会降级为同步执行。 - Network accessline 177
- [#2728](https://github.com/hyperf/hyperf/pull/2728) `JsonRPC` 中,以 `__` 为前缀的方法,都不会在注册到 `RPC` 服务中,例如 `__construct`, '__call'。 - Network accessline 183
- [#2682](https://github.com/hyperf/hyperf/pull/2682) 为 `CacheableInterface` 新增方法 `getCacheTTL` 可根据不同模型设置不同的缓存时间。 - Network accessline 184
- [#2696](https://github.com/hyperf/hyperf/pull/2696) 新增 Swoole Tracker 的内存检测工具。 - Network accessline 188
- [#2680](https://github.com/hyperf/hyperf/pull/2680) 修复 `CastsValue` 因为没有设置 `$isSynchronized` 默认值,导致的类型错误。 - Network accessline 189
- [#2680](https://github.com/hyperf/hyperf/pull/2680) 修复 `CastsValue` 中 `$items` 默认值会被 `__construct` 覆盖的问题。 - Network accessline 190
- [#2693](https://github.com/hyperf/hyperf/pull/2693) 修复 `hyperf/retry` 组件,`Budget` 表现不符合期望的问题。 - Network accessline 191
- [#2695](https://github.com/hyperf/hyperf/pull/2695) 修复方法 `Container::define()` 因为容器中的对象已被实例化,而无法重定义的问题。 - Network accessline 195
- [#2611](https://github.com/hyperf/hyperf/pull/2611) 优化 `hyperf/watcher` 组件 `FindDriver` ,使其可以在 `Alpine` 镜像中使用。 - Network accessline 196
- [#2662](https://github.com/hyperf/hyperf/pull/2662) 优化 `Amqp` 消费者进程,使其可以配合 `Signal` 组件安全停止。 - Network accessline 197
- [#2690](https://github.com/hyperf/hyperf/pull/2690) 优化 `hyperf/tracer` 组件,确保其可以正常执行 `finish` 和 `flush` 方法。 - Network accessline 203
- [#2654](https://github.com/hyperf/hyperf/pull/2654) 新增方法 `Hyperf\Utils\Resource::from`,可以方便的将 `string` 转化为 `resource`。 - Network accessline 207
- [#2634](https://github.com/hyperf/hyperf/pull/2634) [#2640](https://github.com/hyperf/hyperf/pull/2640) 修复 `snowflake` 组件中,元数据生成器 `RedisSecondMetaGenerator` 会产生相同元数据的问题。 - Network accessline 208
- [#2639](https://github.com/hyperf/hyperf/pull/2639) 修复 `json-rpc` 组件中,异常无法正常被序列化的问题。 - Network accessline 209
- [#2643](https://github.com/hyperf/hyperf/pull/2643) 修复 `scout:flush` 执行失败的问题。 - Network accessline 213
- [#2656](https://github.com/hyperf/hyperf/pull/2656) 优化了 `json-rpc` 组件中,参数解析失败后,也可以返回对应的错误信息。 - Network accessline 219
- [#1172](https://github.com/hyperf/hyperf/pull/1172) 新增基于 `laravel/scout` 实现的组件 `hyperf/scout`, 可以通过搜索引擎进行模型查询。 - Network accessline 220
- [#1868](https://github.com/hyperf/hyperf/pull/1868) 新增 `Redis` 组件的哨兵模式。 - Network accessline 221
- [#1969](https://github.com/hyperf/hyperf/pull/1969) 新增组件 `hyperf/resource` and `hyperf/resource-grpc`,可以更加方便的将模型转化为 Response。 - Network accessline 225
- [#2594](https://github.com/hyperf/hyperf/pull/2594) 修复 `hyperf/crontab` 组件因为无法正常响应 `hyperf/signal`,导致无法停止的问题。 - Network accessline 226
- [#2601](https://github.com/hyperf/hyperf/pull/2601) 修复命令 `gen:model` 因为 `getter` 和 `setter` 同时存在时,注释 `@property` 会被 `@property-read` 覆盖的问题。 - [#2607](https://github.com/hyperf/hyperf/pull/2607) [#2637](https://github.com/hyperf/hyperf/pul - Network accessline 227
- [#2607](https://github.com/hyperf/hyperf/pull/2607) [#2637](https://github.com/hyperf/hyperf/pull/2637) 修复使用 `RetryAnnotationAspect` 时,会有一定程度内存泄露的问题。 - [#2624](https://github.com/hyperf/hyperf/pull/2624) 修复组件 `hyperf/testing` 因使用了 `guzzle - Network accessline 228
- [#2624](https://github.com/hyperf/hyperf/pull/2624) 修复组件 `hyperf/testing` 因使用了 `guzzle 7.0` 和 `CURL HOOK` 导致无法正常工作的问题。 - Network accessline 229
- [#2632](https://github.com/hyperf/hyperf/pull/2632) [#2635](https://github.com/hyperf/hyperf/pull/2635) 修复 `hyperf\redis` 组件集群模式,无法设置密码的问题。 - Network accessline 233
- [#2603](https://github.com/hyperf/hyperf/pull/2603) 允许 `hyperf/database` 组件,`whereNull` 方法接受 `array` 作为入参。 - Network accessline 239
- [#2445](https://github.com/hyperf/hyperf/pull/2445) 当使用异常捕获器 `WhoopsExceptionHandler` 返回 `JSON` 格式化的数据时,自动添加异常的 `Trace` 信息。 - Network accessline 240
- [#2580](https://github.com/hyperf/hyperf/pull/2580) 新增 `grpc-client` 组件的 `metadata` 支持。 - Network accessline 244
- [#2559](https://github.com/hyperf/hyperf/pull/2559) 修复使用 `socket-io` 连接 `socketio-server` 时,因为携带 `query` 信息,导致事件无法被触发的问题。 - Network accessline 245
- [#2565](https://github.com/hyperf/hyperf/pull/2565) 修复生成代理类时,因为存在匿名类,导致代理类在没有父类的情况下使用了 `parent::class` 而报错的问题。 - Network accessline 246
- [#2578](https://github.com/hyperf/hyperf/pull/2578) 修复当自定义进程抛错后,事件 `AfterProcessHandle` 无法被触发的问题。 - Network accessline 247
- [#2582](https://github.com/hyperf/hyperf/pull/2582) 修复使用 `Redis::multi` 且在 `defer` 中使用了其他 `Redis` 指令后,导致 `Redis` 同时被两个协程使用而报错的问题。 - Network accessline 248
- [#2589](https://github.com/hyperf/hyperf/pull/2589) 修复使用了协程风格服务时,`AMQP` 消费者无法正常启动的问题。 - Network accessline 249
- [#2590](https://github.com/hyperf/hyperf/pull/2590) 修复使用了协程风格服务时,`Crontab` 无法正常工作的问题。 - Network accessline 253
- [#2561](https://github.com/hyperf/hyperf/pull/2561) 优化关闭 `AMQP` 连接失败时的错误信息。 - Network accessline 254
- [#2584](https://github.com/hyperf/hyperf/pull/2584) 当服务关闭时,不再删除 `Nacos` 中对应的服务。 - Network accessline 260
- [#2512](https://github.com/hyperf/hyperf/pull/2512) 为 [hyperf/database](https://github.com/hyperf/database) 组件方法 `MySqlGrammar::compileColumnListing` 新增返回字段 `column_type`。 - Network accessline 264
- [#2490](https://github.com/hyperf/hyperf/pull/2490) 修复 [hyperf/grpc-client](https://github.com/hyperf/grpc-client) 组件中,流式客户端无法正常工作的问题。 - Network accessline 265
- [#2509](https://github.com/hyperf/hyperf/pull/2509) 修复 [hyperf/database](https://github.com/hyperf/database) 组件中,使用小驼峰模式后,访问器无法正常工作的问题。 - Network accessline 266
- [#2535](https://github.com/hyperf/hyperf/pull/2535) 修复 [hyperf/database](https://github.com/hyperf/database) 组件中,使用 `gen:model` 后,通过访问器生成的注释 `@property` 会被 `morphTo` 覆盖的问题。 - Network accessline 267
- [#2546](https://github.com/hyperf/hyperf/pull/2546) 修复 [hyperf/db-connection](https://github.com/hyperf/db-connection) 组件中,使用 `left join` 等复杂查询后,`MySQL` 连接无法正常释放的问题。 - Network accessline 271
- [#2490](https://github.com/hyperf/hyperf/pull/2490) 优化 [hyperf/grpc-client](https://github.com/hyperf/grpc-client) 组件中的异常和单元测试。 - Network accessline 277
- [#2455](https://github.com/hyperf/hyperf/pull/2455) 为 [hyperf/socketio-server](https://github.com/hyperf/socketio-server) 组件新增方法 `Socket::getRequest` 用于获取 `Psr7` 规范的 `Request`。 - Network accessline 278
- [#2459](https://github.com/hyperf/hyperf/pull/2459) 为 [hyperf/async-queue](https://github.com/hyperf/async-queue) 组件新增监听器 `ReloadChannelListener` 用于自动将超时队列里的消息移动到等待执行队列中。 - Network accessline 279
- [#2463](https://github.com/hyperf/hyperf/pull/2463) 为 [hyperf/database](https://github.com/hyperf/database) 组件新增可选的 `ModelRewriteGetterSetterVisitor` 用于为模型生成对应的 `Getter` 和 `Setter`。 - Network accessline 280
- [#2475](https://github.com/hyperf/hyperf/pull/2475) 为 [hyperf/retry](https://github.com/hyperf/retry) 组件的 `Fallback` 回调,默认增加 `throwable` 参数。 - Network accessline 284
- [#2464](https://github.com/hyperf/hyperf/pull/2464) 修复 [hyperf/database](https://github.com/hyperf/database) 组件中,小驼峰模式模型的 `fill` 方法无法正常使用的问题。 - Network accessline 285
- [#2478](https://github.com/hyperf/hyperf/pull/2478) 修复 [hyperf/websocket-server](https://github.com/hyperf/websocket-server) 组件中,`Sender::check` 无法检测非 `WebSocket` 的 `fd` 值。 - Network accessline 286
- [#2488](https://github.com/hyperf/hyperf/pull/2488) 修复 [hyperf/database](https://github.com/hyperf/database) 组件中,当 `pdo` 实例化失败后 `beginTransaction` 调用失败的问题。 - Network accessline 290
- [#2461](https://github.com/hyperf/hyperf/pull/2461) 优化 [hyperf/reactive-x](https://github.com/hyperf/reactive-x) 组件 `HTTP` 路由监听器,可以监听任意端口路由。 - Network accessline 291
- [#2465](https://github.com/hyperf/hyperf/pull/2465) 优化 [hyperf/retry](https://github.com/hyperf/retry) 组件 `FallbackRetryPolicy` 中 `fallback` 除了可以填写被 `is_callable` 识别的代码外,还可以填写形如 `class@method` 的格式,框架会从 `Container` 中拿到对应的 `class`,然后执行其 `me - Network accessline 295
- [#2492](https://github.com/hyperf/hyperf/pull/2492) 调整 [hyperf/socketio-server](https://github.com/hyperf/socketio-server) 组件中的事件收集顺序,确保 `sid` 早于自定义 `onConnect` 被添加到房间中。 - Network accessline 301
- [#2411](https://github.com/hyperf/hyperf/pull/2411) 为 [hyperf/database](https://github.com/hyperf/database) 组件新增 `Hyperf\Database\Query\Builder::forPageBeforeId` 方法。 - Network accessline 302
- [#2420](https://github.com/hyperf/hyperf/pull/2420) [#2426](https://github.com/hyperf/hyperf/pull/2426) 为 [hyperf/command](https://github.com/hyperf/command) 组件新增默认选项 `enable-event-dispatcher` 用于初始化事件触发器。 - Network accessline 303
- [#2433](https://github.com/hyperf/hyperf/pull/2433) 为 [hyperf/grpc-server](https://github.com/hyperf/grpc-server) 组件路由新增匿名函数支持。 - Network accessline 304
- [#2441](https://github.com/hyperf/hyperf/pull/2441) 为 [hyperf/socketio-server](https://github.com/hyperf/socketio-server) 组件中 `SocketIO` 新增了一些 `setters`。 - Network accessline 308
- [#2427](https://github.com/hyperf/hyperf/pull/2427) 修复事件触发器在使用 `Pivot` 或 `MorphPivot` 不生效的问题。 - Network accessline 309
- [#2443](https://github.com/hyperf/hyperf/pull/2443) 修复使用 [hyperf/Guzzle](https://github.com/hyperf/guzzle) 组件的 `Coroutine Handler` 时,无法正确获取和传递 `traceid` 和 `spanid` 的问题。 - Network accessline 310
- [#2449](https://github.com/hyperf/hyperf/pull/2449) 修复发布 [hyperf/config-apollo](https://github.com/hyperf/config-apollo) 组件的配置文件时,配置文件名称错误的问题。 - Network accessline 314
- [#2429](https://github.com/hyperf/hyperf/pull/2429) 优化使用 `@Inject` 并且没有设置 `@var` 时的错误信息,方便定位问题,改善编程体验。 - Network accessline 315
- [#2438](https://github.com/hyperf/hyperf/pull/2438) 优化当使用 [hyperf/model-cache](https://github.com/hyperf/model-cache) 组件与数据库事务搭配使用时,在事务中删除或修改模型数据会在事务提交后即时再删除缓存,而不再是在删除或修改模型数据时删除缓存数据。 - Network accessline 321
- [#2331](https://github.com/hyperf/hyperf/pull/2331) [hyperf/nacos](https://github.com/hyperf/nacos) 组件增加授权接口。 - Network accessline 322
- [#2331](https://github.com/hyperf/hyperf/pull/2331) [hyperf/nacos](https://github.com/hyperf/nacos) 组件增加 `nacos.enable` 配置,用于控制是否启用 `Nacos` 服务。 - Network accessline 323
- [#2331](https://github.com/hyperf/hyperf/pull/2331) [hyperf/nacos](https://github.com/hyperf/nacos) 组件增加配置合并类型,默认使用全量覆盖。 - Network accessline 324
- [#2377](https://github.com/hyperf/hyperf/pull/2377) 为 gRPC 客户端 的 request 增加 `ts` 请求头,以兼容 Node.js gRPC server 等。 - Network accessline 325
- [#2384](https://github.com/hyperf/hyperf/pull/2384) 新增助手函数 `optional()`,以创建 `Hyperf\Utils\Optional` 对象或更方便 Optional 的使用。 - Network accessline 329
- [#2331](https://github.com/hyperf/hyperf/pull/2331) 修复 [hyperf/nacos](https://github.com/hyperf/nacos) 组件,服务或配置不存在时,会抛出异常的问题。 - Network accessline 330
- [#2356](https://github.com/hyperf/hyperf/pull/2356) [#2368](https://github.com/hyperf/hyperf/pull/2368) 修复 `pid_file` 被用户修改后,命令行 `server:start` 启动失败的问题。 - Network accessline 331
- [#2358](https://github.com/hyperf/hyperf/pull/2358) 修复验证器规则 `digits` 不支持 `int` 类型的问题。 - Network accessline 335
- [#2359](https://github.com/hyperf/hyperf/pull/2359) 优化自定义进程,在协程风格服务下,可以更加友好的停止。 - Network accessline 336
- [#2363](https://github.com/hyperf/hyperf/pull/2363) 优化 [hyperf/di](https://github.com/hyperf/di) 组件,使其不需要依赖 [hyperf/config](https://github.com/hyperf/config) 组件。 - Network accessline 337
- [#2373](https://github.com/hyperf/hyperf/pull/2373) 优化 [hyperf/validation](https://github.com/hyperf/validation) 组件的异常捕获器,使其返回 `Response` 时,自动添加 `content-type` 头。 - Network accessline 344
- [#2334](https://github.com/hyperf/hyperf/pull/2334) 新增更加友好的数组递归合并方法 `Arr::merge`。 - Network accessline 345
- [#2335](https://github.com/hyperf/hyperf/pull/2335) 新增 `Hyperf/Utils/Optional`,它可以接受任意参数,并允许访问该对象上的属性或调用其方法,即使给定的对象为 `null`,也不会引发错误。 - Network accessline 346
- [#2336](https://github.com/hyperf/hyperf/pull/2336) 新增 `RedisNsqAdapter`,它通过 `NSQ` 发布消息,使用 `Redis` 记录房间信息。 - Network accessline 350
- [#2338](https://github.com/hyperf/hyperf/pull/2338) 修复文件系统使用 `S3` 适配器时,文件是否存在的逻辑与预期不符的 BUG。 - Network accessline 351
- [#2340](https://github.com/hyperf/hyperf/pull/2340) 修复 `__FUNCTION__` 和 `__METHOD__` 魔术方法无法在被 `AOP` 重写的方法里正常工作的 BUG。 - Network accessline 355
- [#2319](https://github.com/hyperf/hyperf/pull/2319) 优化 `ResolverDispatcher` ,使项目发生循环依赖时,可以提供更加友好的错误提示。 - Network accessline 361
- [#2307](https://github.com/hyperf/hyperf/pull/2307) [#2312](https://github.com/hyperf/hyperf/pull/2312) [hyperf/nsq](https://github.com/hyperf/nsq) 组件,新增 `NSQD` 的 `HTTP` 客户端。 - Network accessline 365
- [#2275](https://github.com/hyperf/hyperf/pull/2275) 修复配置中心,拉取配置进程会出现阻塞的 BUG。 - Network accessline 366
- [#2276](https://github.com/hyperf/hyperf/pull/2276) 修复 `Apollo` 配置中心,当配置没有变更时,会清除所有本地配置项的 BUG。 - Network accessline 367
- [#2280](https://github.com/hyperf/hyperf/pull/2280) 修复 `Interface` 的方法会被 `AOP` 重写,导致启动报错的 BUG。 - Network accessline 368
- [#2281](https://github.com/hyperf/hyperf/pull/2281) 当使用 `Task` 组件,且没有启动协程时,`Signal` 组件会导致启动报错的 BUG。 - Network accessline 369
- [#2304](https://github.com/hyperf/hyperf/pull/2304) 修复当使用 `SocketIOServer` 的内存适配器,删除 `sid` 时,会导致死循环的 BUG。 - Network accessline 370
- [#2309](https://github.com/hyperf/hyperf/pull/2309) 修复 `JsonRpcHttpTransporter` 无法设置自定义超时时间的 BUG。 - Network accessline 376
- [#2125](https://github.com/hyperf/hyperf/pull/2125) 新增 [hyperf/jet](https://github.com/hyperf/jet) 组件。`Jet` 是一个统一模型的 RPC 客户端,内置 JSONRPC 协议的适配,该组件可适用于所有的 `PHP (>= 7.2)` 环境,包括 PHP-FPM 和 Swoole 或 Hyperf。 - Network accessline 380
- [#2236](https://github.com/hyperf/hyperf/pull/2236) 修复 `Nacos` 使用负载均衡器选择节点失败的 BUG。 - Network accessline 381
- [#2242](https://github.com/hyperf/hyperf/pull/2242) 修复 `watcher` 组件会重复收集多次注解的 BUG。 - Network accessline 387
- [#2001](https://github.com/hyperf/hyperf/pull/2001) 新增参数 `$signature`,用于简化命令行的初始化工作。 - Network accessline 388
- [#2204](https://github.com/hyperf/hyperf/pull/2204) 为方法 `parallel` 增加 `$concurrent` 参数,用于快速设置并发量。 - Network accessline 392
- [#2210](https://github.com/hyperf/hyperf/pull/2210) 修复 `WebSocket` 握手成功后,不会立马触发 `OnOpen` 事件的 BUG。 - Network accessline 393
- [#2214](https://github.com/hyperf/hyperf/pull/2214) 修复 `WebSocket` 主动关闭连接时,不会触发 `OnClose` 事件的 BUG。 - Network accessline 394
- [#2218](https://github.com/hyperf/hyperf/pull/2218) 修复在 `协程 Server` 下,`Sender::disconnect` 报错的 BUG。 - Network accessline 395
- [#2227](https://github.com/hyperf/hyperf/pull/2227) 修复在 `协程 Server` 下,建立 `keepalive` 连接后,上下文数据无法在请求结束后销毁的 BUG。 - Network accessline 399
- [#2193](https://github.com/hyperf/hyperf/pull/2193) 优化 `Hyperf\Watcher\Driver\FindDriver`,使其扫描有变动的文件更加精确。 - Network accessline 400
- [#2232](https://github.com/hyperf/hyperf/pull/2232) 优化 `model-cache` 的预加载功能,使其支持 `In` 和 `InRaw`。 - Network accessline 406
- [#2144](https://github.com/hyperf/hyperf/pull/2144) 数据库查询事件 `Hyperf\Database\Events\QueryExecuted` 添加 `$result` 字段。 - Network accessline 407
- [#2158](https://github.com/hyperf/hyperf/pull/2158) 路由 `Hyperf\HttpServer\Router\Handler` 中,添加 `$options` 字段。 - Network accessline 408
- [#2162](https://github.com/hyperf/hyperf/pull/2162) 热更新组件添加 `Hyperf\Watcher\Driver\FindDriver`。 - Network accessline 409
- [#2169](https://github.com/hyperf/hyperf/pull/2169) `Session` 组件新增配置 `session.options.domain`,用于替换 `Request` 中获取的 `domain`。 - Network accessline 410
- [#2174](https://github.com/hyperf/hyperf/pull/2174) 模型生成器添加 `ModelRewriteTimestampsVisitor`,用于根据数据库字段 `created_at` 和 `updated_at`, 重写模型字段 `$timestamps`。 - Network accessline 411
- [#2175](https://github.com/hyperf/hyperf/pull/2175) 模型生成器添加 `ModelRewriteSoftDeletesVisitor`,用于根据数据库字段 `deleted_at`, 添加或者移除 `SoftDeletes`。 - Network accessline 412
- [#2176](https://github.com/hyperf/hyperf/pull/2176) 模型生成器添加 `ModelRewriteKeyInfoVisitor`,用于根据数据库主键,重写模型字段 `$incrementing` `$primaryKey` 和 `$keyType`。 - Network accessline 416
- [#2149](https://github.com/hyperf/hyperf/pull/2149) 修复自定义进程运行过程中无法从 Nacos 正常更新配置的 BUG。 - Network accessline 417
- [#2159](https://github.com/hyperf/hyperf/pull/2159) 修复使用 `gen:migration` 时,由于文件已经存在导致的 `FATAL` 异常。 - Network accessline 421
- [#2043](https://github.com/hyperf/hyperf/pull/2043) 当 `SCAN` 目录都不存在时,抛出更加友好的异常。 - Network accessline 422
- [#2182](https://github.com/hyperf/hyperf/pull/2182) 当使用 `WebSocket` 和 `Http` 服务且 `Http` 接口被访问时,不会记录 `WebSocket` 关闭连接的日志。 - Network accessline 428
- [#1554](https://github.com/hyperf/hyperf/pull/1554) 新增 `hyperf/nacos` 组件。 - Network accessline 429
- [#2082](https://github.com/hyperf/hyperf/pull/2082) 监听器 `Hyperf\Signal\Handler\WorkerStopHandler` 添加信号 `SIGINT` 监听。 - Network accessline 430
- [#2097](https://github.com/hyperf/hyperf/pull/2097) `hyperf/filesystem` 新增 TencentCloud COS 支持. - Network accessline 431
- [#2122](https://github.com/hyperf/hyperf/pull/2122) 添加 Trait `\Hyperf\Snowflake\Concern\HasSnowflake` 为模型自动生成雪花算法的主键。 - Network accessline 435
- [#2017](https://github.com/hyperf/hyperf/pull/2017) 修复 Prometheus 使用 redis 打点时,改变 label 会导致收集报错的 BUG。 - Network accessline 436
- [#2117](https://github.com/hyperf/hyperf/pull/2117) 修复使用 `server:watch` 时,注解 `@Inject` 有时会失效的 BUG。 - Network accessline 437
- [#2123](https://github.com/hyperf/hyperf/pull/2123) 修复 `tracer` 会记录两次 `Redis 指令` 的 BUG。 - Network accessline 438
- [#2139](https://github.com/hyperf/hyperf/pull/2139) 修复 `ValidationMiddleware` 在 `WebSocket` 服务下使用会报错的 BUG。 - Network accessline 439
- [#2140](https://github.com/hyperf/hyperf/pull/2140) 修复请求抛出异常时,`Session` 无法保存的 BUG。 - Network accessline 443
- [#2080](https://github.com/hyperf/hyperf/pull/2080) 方法 `Hyperf\Database\Model\Builder::paginate` 中参数 `$perPage` 的类型从 `int` 更改为 `?int`。 - Network accessline 444
- [#2110](https://github.com/hyperf/hyperf/pull/2110) 在使用 `hyperf/watcher` 时,会先检查进程是否存在,如果不存在,才会发送 `SIGTERM` 信号。 - Network accessline 445
- [#2116](https://github.com/hyperf/hyperf/pull/2116) 优化组件 `hyperf/di` 的依赖。 - Network accessline 446
- [#2121](https://github.com/hyperf/hyperf/pull/2121) 在使用 `gen:model` 时,如果用户自定义了与数据库字段一致的字段时,则会替换对应的 `@property`。 - Network accessline 447
- [#2129](https://github.com/hyperf/hyperf/pull/2129) 当 Response Json 格式化失败时,会抛出更加友好的错误提示。 - Network accessline 453
- [#1898](https://github.com/hyperf/hyperf/pull/1898) 修复定时器规则 `$min-$max` 解析有误的 BUG。 - Network accessline 454
- [#2037](https://github.com/hyperf/hyperf/pull/2037) 修复 TCP 服务,连接后共用一个协程,导致 DB 等连接池无法正常回收连接的 BUG。 - Network accessline 455
- [#2051](https://github.com/hyperf/hyperf/pull/2051) 修复 `CoroutineServer` 不会生成 `hyperf.pid` 的 BUG。 - Network accessline 456
- [#2055](https://github.com/hyperf/hyperf/pull/1695) 修复 `Guzzle` 在传输大数据包时会自动添加头 `Expect: 100-Continue`,导致请求失败的 BUG。 - Network accessline 457
- [#2059](https://github.com/hyperf/hyperf/pull/2059) 修复 `SocketIOServer` 中 `Redis` 重连失败的 BUG。 - Network accessline 458
- [#2067](https://github.com/hyperf/hyperf/pull/2067) 修复 `hyperf/watcher` 组件 `Syntax` 错误会导致进程异常。 - Network accessline 459
- [#2085](https://github.com/hyperf/hyperf/pull/2085) 修复注解 `RetryFalsy` 会导致获得正确的结果后,再次重试。 - Network accessline 460
- [#2089](https://github.com/hyperf/hyperf/pull/2089) 修复使用 `gen:command` 后,脚本必须要进行修改,才能被加载到的 BUG。 - Network accessline 461
- [#2093](https://github.com/hyperf/hyperf/pull/2093) 修复脚本 `vendor:publish` 没有返回码导致报错的 BUG。 - Network accessline 465
- [#1860](https://github.com/hyperf/hyperf/pull/1860) 为 `Server` 添加默认的 `OnWorkerExit` 回调。 - Network accessline 466
- [#2042](https://github.com/hyperf/hyperf/pull/2042) 为热更新组件,添加文件扫描驱动。 - Network accessline 467
- [#2054](https://github.com/hyperf/hyperf/pull/2054) 为模型缓存添加 `Eager Load` 功能。 - Network accessline 471
- [#2049](https://github.com/hyperf/hyperf/pull/2049) 优化热更新组件的 Stdout 输出。 - Network accessline 472
- [#2090](https://github.com/hyperf/hyperf/pull/2090) 为 `hyperf/session` 组件适配非 `Hyperf` 的 `Response`。 - Network accessline 476
- [#2031](https://github.com/hyperf/hyperf/pull/2031) 常量组件的错误码只支持 `int` 和 `string`。 - Network accessline 477
- [#2065](https://github.com/hyperf/hyperf/pull/2065) `WebSocket` 消息发送器 `Hyperf\WebSocketServer\Sender` 支持 `push` 和 `disconnect`。 - Network accessline 478
- [#2100](https://github.com/hyperf/hyperf/pull/2100) 组件 `hyperf/utils` 更新依赖 `doctrine/inflector` 版本到 `^2.0`。 - Network accessline 482
- [#2065](https://github.com/hyperf/hyperf/pull/2065) 移除 `Hyperf\WebSocketServer\Sender` 对方法 `send` `sendto` 和 `close` 的支持,请使用 `push` 和 `disconnect`。 - Network accessline 488
- [#1934](https://github.com/hyperf/hyperf/pull/1934) 增加脚本 `gen:constant` 用于创建常量类。 - Network accessline 489
- [#1982](https://github.com/hyperf/hyperf/pull/1982) 添加热更新组件,文件修改后自动收集注解,自动重启。 - Network accessline 493
- [#1952](https://github.com/hyperf/hyperf/pull/1952) 修复数据库迁移类存在时,也会生成同类名类,导致类名冲突的 BUG。 - Network accessline 494
- [#1960](https://github.com/hyperf/hyperf/pull/1960) 修复 `Hyperf\HttpServer\ResponseEmitter::isMethodsExists()` 判断错误的 BUG。 - Network accessline 495
- [#1961](https://github.com/hyperf/hyperf/pull/1961) 修复因文件 `config/autoload/aspects.php` 不存在导致服务无法启动的 BUG。 - Network accessline 496
- [#1964](https://github.com/hyperf/hyperf/pull/1964) 修复接口请求时,数据体为空会导致 `500` 错误的 BUG。 - Network accessline 497
- [#1965](https://github.com/hyperf/hyperf/pull/1965) 修复 `initRequestAndResponse` 失败后,会导致请求状态码与实际不符的 BUG。 - Network accessline 498
- [#1968](https://github.com/hyperf/hyperf/pull/1968) 修复当修改 `aspects.php` 文件后,`Aspect` 无法安装修改后的结果运行的 BUG。 - Network accessline 499
- [#1985](https://github.com/hyperf/hyperf/pull/1985) 修复注解全局配置不全为小写时,会导致 `global_imports` 失败的 BUG。 - Network accessline 500
- [#1990](https://github.com/hyperf/hyperf/pull/1990) 修复当父类存在与子类一样的成员变量时, `@Inject` 无法正常使用的 BUG。 - Network accessline 501
- [#2019](https://github.com/hyperf/hyperf/pull/2019) 修复脚本 `gen:model` 因为使用了 `morphTo` 或 `where` 导致生成对应的 `@property` 失败的 BUG。 - Network accessline 502
- [#2026](https://github.com/hyperf/hyperf/pull/2026) 修复当使用了魔术方法时,LazyLoad 代理生成有误的 BUG。 - Network accessline 506
- [#1986](https://github.com/hyperf/hyperf/pull/1986) 当没有设置正确的 `swoole.use_shortname` 变更脚本 `exit_code` 为 `SIGTERM`。 - Network accessline 510
- [#1959](https://github.com/hyperf/hyperf/pull/1959) 优化类 `ClassLoader` 可以更容易被用户继承并修改。 - Network accessline 511
- [#2002](https://github.com/hyperf/hyperf/pull/2002) 当 `PHP` 版本大于等于 `7.3` 时,支持 `AOP` 切入 `Trait`。 - Network accessline 517
1. 重构 [hyperf/di](https://github.com/hyperf/di) 组件,特别是对 AOP 和注解的优化,在 2.0 版本,该组件使用了一个全新的加载机制来提供 AOP 功能的支持。 - Network accessline 555
- [#992](https://github.com/hyperf/hyperf/pull/992) 新增 [hyperf/reactive-x](https://github.com/hyperf/reactive-x) 组件; - Network accessline 556
- [#1245](https://github.com/hyperf/hyperf/pull/1245) 为 `ExceptionHandler` 新增了注解的定义方式; - Network accessline 557
- [#1245](https://github.com/hyperf/hyperf/pull/1245) `ExceptionHandler` 新增了 `priority` 优先级属性,通过配置文件或注解方式均可定义优先级; - Network accessline 558
- [#1819](https://github.com/hyperf/hyperf/pull/1819) 新增 [hyperf/signal](https://github.com/hyperf/signal) 组件; - Network accessline 559
- [#1844](https://github.com/hyperf/hyperf/pull/1844) 为 [hyperf/model-cache](https://github.com/hyperf/model-cache) 组件中的 `ttl` 属性增加了 `\DateInterval` 类型的支持; - Network accessline 560
- [#1855](https://github.com/hyperf/hyperf/pull/1855) 连接池新增了 `ConstantFrequency` 恒定频率策略来释放限制的连接; - Network accessline 561
- [#1871](https://github.com/hyperf/hyperf/pull/1871) 为 Guzzle 增加 `sink` 选项支持; - Network accessline 562
- [#1805](https://github.com/hyperf/hyperf/pull/1805) 新增 Coroutine Server 协程服务支持; - Network accessline 566
- `Hyperf\AsyncQueue\Environment` 的作用域改为当前协程内,而不是整个进程; - 协程模式下不再支持 Task 机制; - [#1877](https://github.com/hyperf/hyperf/pull/1877) 在 PHP 8 下使用 `@Inject` 注解时支持通过成员属性强类型声明来替代 `@var` 声明,如下所示: - Network accessline 568
- [#1877](https://github.com/hyperf/hyperf/pull/1877) 在 PHP 8 下使用 `@Inject` 注解时支持通过成员属性强类型声明来替代 `@var` 声明,如下所示: - Network accessline 579
- [#1890](https://github.com/hyperf/hyperf/pull/1890) 新增 `Hyperf\HttpServer\ResponseEmitter` 类来响应任意符合 PSR-7 标准的 Response 对象,同时抽象了 `Hyperf\Contract\ResponseEmitterInterface` 契约; - Network accessline 580
- [#1890](https://github.com/hyperf/hyperf/pull/1890) 为 `Hyperf\HttpMessage\Server\Response` 类新增了 `getTrailers()` 和 `getTrailer(string $key)` 和 `withTrailer(string $key, $value)` 方法; - Network accessline 581
- [#1920](https://github.com/hyperf/hyperf/pull/1920) 新增方法 `Hyperf\WebSocketServer\Sender::close(int $fd, bool $reset = null)`. - Network accessline 585
- [#1825](https://github.com/hyperf/hyperf/pull/1825) 修复了 `StartServer::execute` 的 `TypeError`; - Network accessline 586
- [#1854](https://github.com/hyperf/hyperf/pull/1854) 修复了在 filesystem 中使用 `Runtime::enableCoroutine()` 时,`is_resource` 不能工作的问题; - Network accessline 587
- [#1900](https://github.com/hyperf/hyperf/pull/1900) 修复了 `Model` 中的 `asDecimal` 方法类型有可能错误的问题; - Network accessline 588
- [#1917](https://github.com/hyperf/hyperf/pull/1917) 修复了 `Request::isXmlHttpRequest` 方法无法正常工作的问题; - Network accessline 592
- [#705](https://github.com/hyperf/hyperf/pull/705) 统一了 HTTP 异常的处理方式,现在统一抛出一个 `Hyperf\HttpMessage\Exception\HttpException` 依赖类来替代在 `Dispatcher` 中直接响应的方式,同时提供了 `Hyperf\HttpServer\Exception\Handler\HttpExceptionHandler` 异常处理器来处理该类异常; - Network accessline 593
- [#1846](https://github.com/hyperf/hyperf/pull/1846) 当您 require 了 `symfony/serializer` 库,不再自动映射 `Hyperf\Contract\NormalizerInterface` 的实现类,您需要手动添加该映射关系,如下: - Network accessline 604
- [#1924](https://github.com/hyperf/hyperf/pull/1924) 重命名 `Hyperf\GrpcClient\BaseClient` 内 `simpleRequest, getGrpcClient, clientStreamRequest` 方法名为 `_simpleRequest, _getGrpcClient, _clientStreamRequest`; - Network accessline 608
- [#1890](https://github.com/hyperf/hyperf/pull/1890) Removed `Hyperf\Contract\Sendable` interface and all implementations of it. - Network accessline 609
- [#1905](https://github.com/hyperf/hyperf/pull/1905) Removed config `config/server.php`, you can merge it into `config/config.php`. - Network accessline 613
- [#1793](https://github.com/hyperf/hyperf/pull/1793) Socket.io 服务现在只在 onOpen and onClose 中触发 connect/disconnect 事件,同时将一些类方法从 private 级别调整到了 protected 级别,以便用户可以方便的重写这些方法; - Network accessline 614
- [#1848](https://github.com/hyperf/hyperf/pull/1848) 当 RPC 客户端对应的 Contract 发生变更时,自动重写生成对应的动态代理客户端类; - Network accessline 615
- [#1863](https://github.com/hyperf/hyperf/pull/1863) 为 async-queue 组件提供更加安全的停止机制; - Network accessline 616
- [#1896](https://github.com/hyperf/hyperf/pull/1896) 当在 constants 组件中使用了同样的 code 时,keys 会被合并起来;
skills/hyperf/references/zh-cn/changelog/2.1.md
- Network accessline 7
- [#3787](https://github.com/hyperf/hyperf/pull/3787) 优化 `JSON RPC` 服务,优先初始化 `PSR Response`,用于避免 `PSR Request` 初始化失败后,无法从上下文中获取 `Response` 的问题。 - Network accessline 13
- [#3723](https://github.com/hyperf/hyperf/pull/3723) 修复验证器规则 `active_url` 无法正确检查 `dns` 记录,从而导致绕过验证的问题。 - Network accessline 14
- [#3724](https://github.com/hyperf/hyperf/pull/3724) 修复可以利用 `RequiredIf` 规则生成用于反序列化漏洞的小工具链的问题。 - Network accessline 18
- [#3721](https://github.com/hyperf/hyperf/pull/3721) 修复了验证器规则 `in` 和 `not in` 判断有误的问题,例如规则为 `in:00` 时,`0`不应该被允许通过。 - Network accessline 24
- [#3684](https://github.com/hyperf/hyperf/pull/3684) 修复使用熔断器时,成功次数和失败次数的界限判断有误的问题。 - Network accessline 30
- [#3667](https://github.com/hyperf/hyperf/pull/3667) 修复形如 `10-12/1,14-15/1` 的定时任务规则无法正常使用的问题。 - Network accessline 31
- [#3669](https://github.com/hyperf/hyperf/pull/3669) 修复了没有反斜线形如 `10-12` 的定时任务规则无法正常使用的问题。 - Network accessline 32
- [#3674](https://github.com/hyperf/hyperf/pull/3674) 修复 `@Task` 注解中,参数 `$workerId` 无法正常使用的问题。 - Network accessline 36
- [#3663](https://github.com/hyperf/hyperf/pull/3663) 优化 `AbstractServiceClient::getNodesFromConsul()` 方法,排除了可能找不到端口的隐患。 - Network accessline 37
- [#3668](https://github.com/hyperf/hyperf/pull/3668) 优化 `Guzzle` 组件中 `CoroutineHandler` 代理相关的代码,增强其兼容性。 - Network accessline 43
- [#3618](https://github.com/hyperf/hyperf/pull/3618) 修复使用了相同路径但不同实现逻辑的路由会在命令 `describe:routes` 中,被合并成一条的问题。 - Network accessline 44
- [#3625](https://github.com/hyperf/hyperf/pull/3625) 修复 `Hyperf\Di\Annotation\Scanner` 中无法正常使用 `class_map` 功能的问题。 - Network accessline 48
- [#3626](https://github.com/hyperf/hyperf/pull/3626) 为 `RPC` 组件增加了新的路径打包器 `Hyperf\Rpc\PathGenerator\DotPathGenerator`。 - Network accessline 52
- [nacos-sdk](https://github.com/hyperf/nacos-sdk-incubator) 基于 Nacos Open API 实现的 SDK。 - Network accessline 58
- [#3598](https://github.com/hyperf/hyperf/pull/3598) 修复事务回滚时,模型累加、累减操作会导致模型缓存产生脏数据的问题。 - Network accessline 59
- [#3607](https://github.com/hyperf/hyperf/pull/3607) 修复在使用协程风格的 `WebSocket` 服务时,`onOpen` 事件无法在事件结束后销毁协程的问题。 - Network accessline 60
- [#3610](https://github.com/hyperf/hyperf/pull/3610) 修复数据库存在前缀时,`fromSub()` 和 `joinSub()` 无法正常使用的问题。 - Network accessline 66
- [#3856](https://github.com/hyperf/hyperf/pull/3586) 修复 `Swow` 服务处理 `keepalive` 的请求时,协程无法在每个请求后结束的问题。 - Network accessline 70
- [#3329](https://github.com/hyperf/hyperf/pull/3329) `@Crontab` 注解的 `enable` 参数增加支持设置数组, 你可以通过它动态的控制定时任务是否启动。 - Network accessline 76
- [#3510](https://github.com/hyperf/hyperf/pull/3510) 修复 `consul` 无法将节点强制离线的问题。 - [#3513](https://github.com/hyperf/hyperf/pull/3513) 修复 `Nats` 因为 `Socket` 超时时间小于最大闲置时间,导致连接意外关闭的问题。 - Network accessline 77
- [#3513](https://github.com/hyperf/hyperf/pull/3513) 修复 `Nats` 因为 `Socket` 超时时间小于最大闲置时间,导致连接意外关闭的问题。 - Network accessline 78
- [#3520](https://github.com/hyperf/hyperf/pull/3520) 修复 `@Inject` 无法作用于嵌套 `Trait` 的问题。 - Network accessline 82
- [#3514](https://github.com/hyperf/hyperf/pull/3514) 新增方法 `Hyperf\HttpServer\Request::clearStoredParsedData()`。 - Network accessline 86
- [#3517](https://github.com/hyperf/hyperf/pull/3517) 优化 `Hyperf\Di\Aop\PropertyHandlerTrait`。 - Network accessline 92
- [#3484](https://github.com/hyperf/hyperf/pull/3484) 新增 `ORM` 方法 `withMax()` `withMin()` `withSum()` 和 `withAvg()`. - Network accessline 98
- [#3465](https://github.com/hyperf/hyperf/pull/3465) 修复协程风格下,`WebSocket` 服务不支持配置多个端口的问题。 - Network accessline 99
- [#3467](https://github.com/hyperf/hyperf/pull/3467) 修复协程风格下,`WebSocket` 服务无法正常释放连接池的问题。 - Network accessline 103
- [#3472](https://github.com/hyperf/hyperf/pull/3472) 新增方法 `Sender::getResponse()`,可以在协程风格的 `WebSocket` 服务里,获得与 `fd` 一一对应的 `Response` 对象。 - Network accessline 109
- [#3432](https://github.com/hyperf/hyperf/pull/3432) 修复 `SocketIO` 服务,定时清理失效 `fd` 的功能无法作用到其他 `worker` 进程的问题。 - Network accessline 110
- [#3434](https://github.com/hyperf/hyperf/pull/3434) 修复 `RPC` 结果不支持允许为 `null` 的类型,例如 `?array` 会被强制转化为数组。 - Network accessline 111
- [#3447](https://github.com/hyperf/hyperf/pull/3447) 修复模型缓存中,因为存在表前缀,导致模型默认值无法生效的问题。 - Network accessline 112
- [#3450](https://github.com/hyperf/hyperf/pull/3450) 修复注解 `@Crontab` 无法作用于 `方法` 的问题,支持一个类中,配置多个 `@Crontab`。 - Network accessline 116
- [#3453](https://github.com/hyperf/hyperf/pull/3453) 优化了类 `Hyperf\Utils\Channel\Caller` 回收实例时的机制,防止因为实例为 `null` 时,导致无法正确回收的问题。 - Network accessline 117
- [#3455](https://github.com/hyperf/hyperf/pull/3455) 优化脚本 `phar:build`,支持使用软连接方式加载的组件包。 - Network accessline 123
- [#3423](https://github.com/hyperf/hyperf/pull/3423) 修复 `worker_num` 设置为非 `Integer` 时,导致定时任务中 `Task` 策略无法正常使用的问题。 - Network accessline 124
- [#3426](https://github.com/hyperf/hyperf/pull/3426) 修复为可选参数路由设置中间件时,导致中间件被意外执行两次的问题。 - Network accessline 128
- [#3422](https://github.com/hyperf/hyperf/pull/3422) 优化了 `co-phpunit` 的代码。 - Network accessline 134
- [#3376](https://github.com/hyperf/hyperf/pull/3376) 为注解 `Hyperf\DbConnection\Annotation\Transactional` 增加参数 `$connection` 和 `$attempts`,用户可以按需设置事务连接和重试次数。 - Network accessline 135
- [#3403](https://github.com/hyperf/hyperf/pull/3403) 新增方法 `Hyperf\Testing\Client::sendRequest()`,用户可以使用自己构造的 `ServerRequest`,比如设置 `Cookies`。 - Network accessline 139
- [#3380](https://github.com/hyperf/hyperf/pull/3380) 修复超全局变量,在协程上下文里没有 `Request` 对象时,无法正常工作的问题。 - Network accessline 140
- [#3394](https://github.com/hyperf/hyperf/pull/3394) 修复使用 `@Inject` 注入的对象,会被 `trait` 中注入的对象覆盖的问题。 - Network accessline 141
- [#3395](https://github.com/hyperf/hyperf/pull/3395) 修复当继承使用 `@Inject` 注入私有变量的父类时,而导致子类实例化报错的问题。 - Network accessline 142
- [#3398](https://github.com/hyperf/hyperf/pull/3398) 修复单元测试中使用 `UploadedFile::isValid()` 时,无法正确判断结果的问题。 - Network accessline 148
- [#3348](https://github.com/hyperf/hyperf/pull/3348) 修复当使用 `Arr::forget` 方法在 `key` 为 `integer` 且不存在时,执行报错的问题。 - Network accessline 149
- [#3351](https://github.com/hyperf/hyperf/pull/3351) 修复 `hyperf/validation` 组件中,`FormRequest` 无法从协程上下文中获取到修改后的 `ServerRequest`,从而导致验证器验证失败的问题。 - Network accessline 150
- [#3356](https://github.com/hyperf/hyperf/pull/3356) 修复 `hyperf/testing` 组件中,客户端 `Hyperf\Testing\Client` 无法模拟构造正常的 `UriInterface` 的问题。 - Network accessline 151
- [#3363](https://github.com/hyperf/hyperf/pull/3363) 修复在入口文件 `bin/hyperf.php` 中自定义的常量,无法在命令 `server:watch` 中使用的问题。 - Network accessline 152
- [#3365](https://github.com/hyperf/hyperf/pull/3365) 修复当使用协程风格服务时,如果用户没有配置 `pid_file`,仍然会意外生成 `runtime/hyperf.pid` 文件的问题。 - Network accessline 156
- [#3364](https://github.com/hyperf/hyperf/pull/3364) 优化命令 `phar:build`,你可以在不使用 `php` 脚本的情况下执行 `phar` 文件,就像使用命令 `./composer.phar` 而非 `php composer.phar`。 - Network accessline 157
- [#3367](https://github.com/hyperf/hyperf/pull/3367) 优化使用 `gen:model` 生成模型字段的类型注释时,尽量读取自定义转换器转换后的对象类型。 - Network accessline 163
- [#3326](https://github.com/hyperf/hyperf/pull/3326) 修复使用 `JsonEofPacker` 无法正确解包自定义 `eof` 数据的问题。 - Network accessline 164
- [#3330](https://github.com/hyperf/hyperf/pull/3330) 修复因其他协程修改静态变量 `$constraints`,导致模型关系查询错误的问题。 - Network accessline 168
- [#3325](https://github.com/hyperf/hyperf/pull/3325) 为 `Crontab` 注解增加 `enable` 参数,用于控制当前任务是否注册到定时任务中。 - Network accessline 172
- [#3338](https://github.com/hyperf/hyperf/pull/3338) 优化了 `testing` 组件,使模拟请求的方法运行在独立的协程当中,避免协程变量污染。 - Network accessline 178
- [#3301](https://github.com/hyperf/hyperf/pull/3301) 修复 `hyperf/cache` 组件,当没有在注解中设置超时时间时,会将超时时间强制转化为 0,导致缓存不失效的问题。 - Network accessline 182
- [#3310](https://github.com/hyperf/hyperf/pull/3310) 新增方法 `Blueprint::comment()`,可以允许在使用 `Migration` 的时候,设置表注释。 - Network accessline 183
- [#3311](https://github.com/hyperf/hyperf/pull/3311) 新增方法 `RouteCollector::getRouteParser`,可以方便的从 `RouteCollector` 中获取到 `RouteParser` 对象。 - Network accessline 184
- [#3316](https://github.com/hyperf/hyperf/pull/3316) 允许用户在 `hyperf/db` 组件中,注册自定义数据库适配器。 - Network accessline 188
- [#3308](https://github.com/hyperf/hyperf/pull/3308) 优化 `WebSocket` 服务,当找不到对应路由时,直接返回响应。 - Network accessline 189
- [#3319](https://github.com/hyperf/hyperf/pull/3319) 优化从连接池获取连接的代码逻辑,避免因重写低频组件导致报错,使得连接被意外丢弃。 - Network accessline 193
- [rpc-multiplex](https://github.com/hyperf/rpc-multiplex-incubator) 基于 Channel 实现的多路复用 RPC 组件。 - Network accessline 194
- [db-pgsql](https://github.com/hyperf/db-pgsql-incubator) 适配于 `hyperf/db` 的 `PgSQL` 适配器。 - Network accessline 200
- [#3272](https://github.com/hyperf/hyperf/pull/3272) 修复使用 `doctrine/dbal` 修改数据库字段名报错的问题。 - Network accessline 204
- [#3261](https://github.com/hyperf/hyperf/pull/3261) 新增方法 `Pipeline::handleCarry`,可以方便处理返回值。 - Network accessline 205
- [#3267](https://github.com/hyperf/hyperf/pull/3267) 新增 `Hyperf\Utils\Reflection\ClassInvoker`,用于执行非公共方法和读取非公共变量。 - Network accessline 206
- [#3268](https://github.com/hyperf/hyperf/pull/3268) 为 `kafka` 消费者新增订阅多个主题的能力。 - Network accessline 207
- [#3193](https://github.com/hyperf/hyperf/pull/3193) [#3296](https://github.com/hyperf/hyperf/pull/3296) 为 `phar:build` 新增选项 `-M`,可以用来映射外部的文件或目录到 `Phar` 包中。 - Network accessline 211
- [#3258](https://github.com/hyperf/hyperf/pull/3258) 为不同的 `kafka` 消费者设置不同的 Client ID。 - Network accessline 212
- [#3282](https://github.com/hyperf/hyperf/pull/3282) 为 `hyperf/signal` 将拼写错误的 `stoped` 修改为 `stopped`。 - Network accessline 218
- [#3233](https://github.com/hyperf/hyperf/pull/3233) 修复 `AMQP` 组件,因连接服务端失败,导致连接池耗尽的问题。 - Network accessline 219
- [#3245](https://github.com/hyperf/hyperf/pull/3245) 修复 `hyperf/kafka` 组件设置 `autoCommit` 为 `false` 无效的问题。 - Network accessline 220
- [#3255](https://github.com/hyperf/hyperf/pull/3255) 修复 `Nsq` 消费者进程,无法触发 `defer` 方法的问题。 - Network accessline 224
- [#3249](https://github.com/hyperf/hyperf/pull/3249) 优化 `hyperf/kafka` 组件,可以重用连接进行消息发布。 - Network accessline 228
- [#3235](https://github.com/hyperf/hyperf/pull/3235) 移除 `hyperf/kafka` 组件 `rebalance` 检查,因为底层库 `longlang/phpkafka` 增加了对应的检查。 - Network accessline 234
- [#3204](https://github.com/hyperf/hyperf/pull/3204) 修复在 `hyperf/rpc-server` 组件中,中间件会被意外替换的问题。 - Network accessline 235
- [#3209](https://github.com/hyperf/hyperf/pull/3209) 修复 `hyperf/amqp` 组件在使用协程风格服务,且因超时意外报错时,没有办法正常回收到连接池的问题。 - Network accessline 236
- [#3222](https://github.com/hyperf/hyperf/pull/3222) 修复 `hyperf/database` 组件中 `JOIN` 查询会导致内存泄露的问题。 - Network accessline 237
- [#3228](https://github.com/hyperf/hyperf/pull/3228) 修复 `hyperf/tracer` 组件中,在 `defer` 中调用 `flush` 失败时,会导致进程异常退出的问题。 - Network accessline 238
- [#3230](https://github.com/hyperf/hyperf/pull/3230) 修复 `hyperf/scout` 组件中 `orderBy` 方法无效的问题。 - Network accessline 242
- [#3211](https://github.com/hyperf/hyperf/pull/3211) 为 `hyperf/nacos` 组件添加了新的配置项 `url`,用于访问 `Nacos` 服务。 - Network accessline 243
- [#3214](https://github.com/hyperf/hyperf/pull/3214) 新增类 `Hyperf\Utils\Channel\Caller`,可以允许用户使用协程安全的连接,避免连接被多个协程绑定,导致报错的问题。 - Network accessline 244
- [#3224](https://github.com/hyperf/hyperf/pull/3224) 新增方法 `Hyperf\Utils\CodeGen\Package::getPrettyVersion()`,允许用户获取组件的版本。 - Network accessline 248
- [#3218](https://github.com/hyperf/hyperf/pull/3218) 默认为 `AMQP` 配置 `QOS` 参数,`prefetch_count` 为 `1`,`global` 为 `false`,`prefetch_size` 为 `0`。 - Network accessline 249
- [#3224](https://github.com/hyperf/hyperf/pull/3224) 为组件 `jean85/pretty-package-versions` 升级版本到 `^1.2|^2.0`, 支持 `Composer 2.x`。 - Network accessline 255
- [#3226](https://github.com/hyperf/hyperf/pull/3226) 优化 `hyperf/database` 组件,使用 `group by` 或 `having` 时执行子查询获得总数。 - Network accessline 261
- [#3165](https://github.com/hyperf/hyperf/pull/3165) 修复方法 `Hyperf\Database\Schema\MySqlBuilder::getColumnListing` 在 `MySQL 8.0` 版本中无法正常使用的问题。 - Network accessline 262
- [#3174](https://github.com/hyperf/hyperf/pull/3174) 修复 `hyperf/database` 组件中 `where` 语句因为不严谨的代码编写,导致被绑定参数会被恶意替换的问题。 - Network accessline 263
- [#3179](https://github.com/hyperf/hyperf/pull/3179) 修复 `json-rpc` 客户端因对端服务重启,导致接收数据一直异常的问题。 - Network accessline 264
- [#3189](https://github.com/hyperf/hyperf/pull/3189) 修复 `kafka` 在集群模式下无法正常使用的问题。 - Network accessline 265
- [#3191](https://github.com/hyperf/hyperf/pull/3191) 修复 `json-rpc` 客户端因对端服务重启,导致连接池中的连接全部失效,新的请求进来时,首次使用皆会报错的问题。 - Network accessline 269
- [#3170](https://github.com/hyperf/hyperf/pull/3170) 为 `hyperf/watcher` 组件新增了更加友好的驱动器 `FindNewerDriver`,支持 `Mac` `Linux` 和 `Docker`。 - Network accessline 270
- [#3195](https://github.com/hyperf/hyperf/pull/3195) 为 `JsonRpcPoolTransporter` 新增了重试机制, 当连接、发包、收包失败时,默认重试 2 次,收包超时不进行重试。 - Network accessline 274
- [#3169](https://github.com/hyperf/hyperf/pull/3169) 优化了 `ErrorExceptionHandler` 中与 `set_error_handler` 相关的入参代码, 解决静态检测因入参不匹配导致报错的问题。 - Network accessline 275
- [#3191](https://github.com/hyperf/hyperf/pull/3191) 优化了 `hyperf/json-rpc` 组件, 当连接中断后,会先尝试重连。 - Network accessline 279
- [#3174](https://github.com/hyperf/hyperf/pull/3174) 严格检查 `hyperf/database` 组件中 `where` 语句绑定参数。 - Network accessline 283
- [DAG](https://github.com/hyperf/dag-incubator) 轻量级有向无环图任务编排库。 - Network accessline 284
- [RPN](https://github.com/hyperf/rpn-incubator) 逆波兰表示法。 - Network accessline 290
- [#3070](https://github.com/hyperf/hyperf/pull/3070) 修复 `tracer` 组件无法正常使用的问题。 - Network accessline 291
- [#3106](https://github.com/hyperf/hyperf/pull/3106) 修复协程从已被销毁的协程中复制协程上下文时导致报错的问题。 - Network accessline 292
- [#3108](https://github.com/hyperf/hyperf/pull/3108) 修复使用 `describe:routes` 命令时,相同 `callback` 不同路由组的路由会被替换覆盖的问题。 - Network accessline 293
- [#3118](https://github.com/hyperf/hyperf/pull/3118) 修复 `migrations` 配置名位置错误的问题。 - Network accessline 294
- [#3126](https://github.com/hyperf/hyperf/pull/3126) 修复 `Swoole` 扩展 `v4.6` 版本中,`SWOOLE_HOOK_SOCKETS` 与 `jaeger` 冲突的问题。 - Network accessline 295
- [#3137](https://github.com/hyperf/hyperf/pull/3137) 修复 `database` 组件,当没有主动设置 `PDO::ATTR_PERSISTENT` 为 `true` 时,导致的类型错误。 - Network accessline 296
- [#3141](https://github.com/hyperf/hyperf/pull/3141) 修复使用 `Migration` 时,`doctrine/dbal` 无法正常工作的问题。 - Network accessline 300
- [#3059](https://github.com/hyperf/hyperf/pull/3059) 为 `view-engine` 组件增加合并任意标签的能力。 - Network accessline 301
- [#3123](https://github.com/hyperf/hyperf/pull/3123) 为 `view-engine` 组件增加 `ComponentAttributeBag::has()` 方法。 - Network accessline 307
- [#3050](https://github.com/hyperf/hyperf/pull/3050) 修复在 `increment()` 后使用 `save()` 时,导致 `extra` 数据被保存两次的问题。 - Network accessline 308
- [#3082](https://github.com/hyperf/hyperf/pull/3082) 修复 `hyperf/db` 组件在 `defer` 中使用时,会导致连接被其他协程绑定的问题。 - Network accessline 309
- [#3084](https://github.com/hyperf/hyperf/pull/3084) 修复 `phar` 打包后 `getRealPath` 无法正常工作的问题。 - Network accessline 310
- [#3087](https://github.com/hyperf/hyperf/pull/3087) 修复使用 `AOP` 时,`pipeline` 导致内存泄露的问题。 - Network accessline 311
- [#3095](https://github.com/hyperf/hyperf/pull/3095) 修复 `hyperf/scout` 组件中,`ElasticsearchEngine::getTotalCount()` 无法兼容 `Elasticsearch 7.0` 版本的问题。 - Network accessline 315
- [#2847](https://github.com/hyperf/hyperf/pull/2847) 新增 `hyperf/kafka` 组件。 - Network accessline 316
- [#3066](https://github.com/hyperf/hyperf/pull/3066) 为 `hyperf/db` 组件新增 `ConnectionInterface::run(Closure $closure)` 方法。 - Network accessline 320
- [#3046](https://github.com/hyperf/hyperf/pull/3046) 打包 `phar` 时,优化了重写 `scan_cacheable` 的代码。 - Network accessline 324
- [#3077](https://github.com/hyperf/hyperf/pull/3077) 因组件 `league/flysystem` 的 `2.0` 版本无法兼容,故降级到 `^1.0`。 - Network accessline 330
- [#3045](https://github.com/hyperf/hyperf/pull/3045) 修复 `database` 组件,当没有主动设置 `PDO::ATTR_PERSISTENT` 为 `true` 时,导致的类型错误。 - Network accessline 331
- [#3047](https://github.com/hyperf/hyperf/pull/3047) 修复 `socketio-server` 组件,为 `sid` 续约时报错的问题。 - Network accessline 332
- [#3062](https://github.com/hyperf/hyperf/pull/3062) 修复 `grpc-server` 组件,入参无法被正确解析的问题。 - Network accessline 336
- [#3052](https://github.com/hyperf/hyperf/pull/3052) 为 `metric` 组件,新增了收集命令行指标的功能。 - Network accessline 337
- [#3054](https://github.com/hyperf/hyperf/pull/3054) 为 `socketio-server` 组件,新增了 `Engine::close` 协议支持,并在调用方法 `getRequest` 失败时,抛出连接已被关闭的异常。 - Network accessline 378
- [#2720](https://github.com/hyperf/hyperf/pull/2720) 不再在方法 `PDOStatement::bindValue()` 中设置 `data_type`,已避免字符串索引中使用整形时,导致索引无法被命中的问题。 - Network accessline 379
- [#2871](https://github.com/hyperf/hyperf/pull/2871) 从 `StreamInterface` 中获取数据时,使用 `(string) $body` 而不是 `$body->getContents()`,因为方法 `getContents()` 只会返回剩余的数据,而非全部数据。 - Network accessline 380
- [#2909](https://github.com/hyperf/hyperf/pull/2909) 允许设置重复的中间件。 - Network accessline 381
- [#2935](https://github.com/hyperf/hyperf/pull/2935) 修改了 `Exception Formatter` 的默认规则。 - Network accessline 382
- [#2979](https://github.com/hyperf/hyperf/pull/2979) 命令行 `gen:model` 不再自动将 `decimal` 格式转化为 `float`。 - Network accessline 391
- [#2659](https://github.com/hyperf/hyperf/pull/2659) [#2663](https://github.com/hyperf/hyperf/pull/2663) 新增了 [Swow](https://github.com/swow/swow) 驱动支持。 - Network accessline 392
- [#2671](https://github.com/hyperf/hyperf/pull/2671) 新增监听器 `Hyperf\AsyncQueue\Listener\QueueHandleListener`,用来记录异步队列的运行日志。 - Network accessline 393
- [#2923](https://github.com/hyperf/hyperf/pull/2923) 新增类 `Hyperf\Utils\Waiter`,可以用来等待一个协程结束。 - Network accessline 394
- [#3001](https://github.com/hyperf/hyperf/pull/3001) 新增方法 `Hyperf\Database\Model\Collection::columns()`,类似于 `array_column`。 - Network accessline 395
- [#3002](https://github.com/hyperf/hyperf/pull/3002) 为 `Json::decode` 和 `Json::encode` 新增参数 `$depth` 和 `$flags`。 - Network accessline 399
- [#2741](https://github.com/hyperf/hyperf/pull/2741) 修复自定义进程无法在 `Swow` 驱动下使用的问题。 - Network accessline 403
- [#3009](https://github.com/hyperf/hyperf/pull/3009) 优化了 `prometheus`,使其支持 `https` 和 `http` 协议。
skills/hyperf/references/zh-cn/changelog/2.2.md
- Network accessline 7
- [#4776](https://github.com/hyperf/hyperf/pull/4776) 修复 `GraphQL` 事件收集失败的问题。 - Network accessline 8
- [#4790](https://github.com/hyperf/hyperf/pull/4790) 修复 `RPN` 组件中方法 `toRPNExpression` 在某些场景无法正常工作的问题。 - Network accessline 12
- [#4763](https://github.com/hyperf/hyperf/pull/4763) 新增验证规则 `array:key1,key2`,确保数组中除 `key1` `key2` 以外无其他 `key` 键。 - Network accessline 13
- [#4781](https://github.com/hyperf/hyperf/pull/4781) 新增配置 `close-pull-request.yml`,用来自动关闭只读的仓库。 - Network accessline 19
- [#4745](https://github.com/hyperf/hyperf/pull/4745) 当使用 `kafka` 组件的 `Producer::close` 方法时,修复可能抛出空指针异常的问题。 - Network accessline 20
- [#4754](https://github.com/hyperf/hyperf/pull/4754) 通过配置 `monolog>=2.6.0` 解决新版本的 `monolog` 无法正常工作的问题。 - Network accessline 24
- [#4738](https://github.com/hyperf/hyperf/pull/4738) 当使用 `kafka` 组件时,如果没有设置 `GroupID` 则自动配置一个。 - Network accessline 30
- [#4677](https://github.com/hyperf/hyperf/pull/4677) 修复使用 `kafka` 发布者后,会导致进程无法正常退出的问题。 - Network accessline 31
- [#4686](https://github.com/hyperf/hyperf/pull/4687) 修复使用 `WebSocket` 服务时,因为解析 `Request` 失败会导致进程崩溃的问题。 - Network accessline 35
- [#4576](https://github.com/hyperf/hyperf/pull/4576) 为 `RPC` 客户端的节点,增加路由前缀 `path_prefix`。 - Network accessline 36
- [#4683](https://github.com/hyperf/hyperf/pull/4683) 新增容器方法 `unbind()` 用来从容器中解绑对象。 - Network accessline 42
- [#4648](https://github.com/hyperf/hyperf/pull/4648) 当使用 `retry` 组件中的熔断器时,修复在 `open` 状态下,无法自动调用 `fallback` 方法的问题。 - Network accessline 43
- [#4657](https://github.com/hyperf/hyperf/pull/4657) 修复使用 `session` 中的文件适配器时,相同的 `Session ID` 在被重写后,最后修改时间仍是上次修改时间的问题。 - Network accessline 47
- [#4646](https://github.com/hyperf/hyperf/pull/4646) 为 `Redis` 哨兵模式增加设置密码的功能。 - Network accessline 53
- [#4620](https://github.com/hyperf/hyperf/pull/4620) 修复 `Hyperf\Memory\LockManager::initialize()` 方法中,`$filename` 默认值错误的问题。 - Network accessline 59
- [#4588](https://github.com/hyperf/hyperf/pull/4588) 修复 `database` 组件不支持 `bit` 类型的问题。 - Network accessline 60
- [#4589](https://github.com/hyperf/hyperf/pull/4589) 修复使用 `Nacos` 时,无法正确的注册临时实例的问题。 - Network accessline 64
- [#4580](https://github.com/hyperf/hyperf/pull/4580) 新增方法 `Hyperf\Utils\Coroutine\Concurrent::getChannel()`。 - Network accessline 68
- [#4602](https://github.com/hyperf/hyperf/pull/4602) 将方法 `Hyperf\ModelCache\Manager::formatModels()` 更改为公共方法。 - Network accessline 74
- [#4572](https://github.com/hyperf/hyperf/pull/4572) 当负载均衡器 `hyperf/load-balancer` 选择节点失败时,使用 `Hyperf\LoadBalancer\Exception\RuntimeException` 代替 `\RuntimeException`。 - Network accessline 80
- [#4536](https://github.com/hyperf/hyperf/pull/4536) 修复使用 `JsonRPC` 时,会设置多次 `content-type` 的问题。 - Network accessline 84
- [#4527](https://github.com/hyperf/hyperf/pull/4527) 为 `Hyperf\Database\Schema\Blueprint` 增加了一些比较有用的方法。 - Network accessline 88
- [#4514](https://github.com/hyperf/hyperf/pull/4514) 通过使用小写 `key` 获取 `HTTP` 的 `Header` 信息,提升一部分性能。 - Network accessline 89
- [#4521](https://github.com/hyperf/hyperf/pull/4521) 在使用 Redis 的哨兵模式时,如果第一个哨兵节点连接失败,则尝试连接其余哨兵节点。 - Network accessline 90
- [#4529](https://github.com/hyperf/hyperf/pull/4529) 将组件 `hyperf/context` 从组件 `hyperf/utils` 中分离出来。 - Network accessline 96
- [#4484](https://github.com/hyperf/hyperf/pull/4484) 修复使用 `Nacos v2.0.4` 版本时,服务是否注册过,判断有误的问题。 - Network accessline 100
- [#4477](https://github.com/hyperf/hyperf/pull/4477) 为 `Hyperf\HttpServer\Request` 新增 `Macroable` 支持。 - Network accessline 104
- [#4254](https://github.com/hyperf/hyperf/pull/4254) 当使用 `Hyperf\Di\ScanHandlerPcntlScanHandler` 时,增加 `grpc.enable_fork_support` 检测。 - Network accessline 110
- [#4474](https://github.com/hyperf/hyperf/pull/4474) 修复使用多路复用 RPC 时,导致测试脚本无法正常停止的问题。 - Network accessline 114
- [#4451](https://github.com/hyperf/hyperf/pull/4451) 优化了 `Hyperf\Watcher\Driver\FindNewerDriver` 的代码。 - Network accessline 120
- [#4426](https://github.com/hyperf/hyperf/pull/4426) 修复 `view-engine` 模板引擎,在并发请求下导致模板缓存生成错误的问题。 - Network accessline 124
- [#4449](https://github.com/hyperf/hyperf/pull/4449) 为 `Hyperf\Utils\Collection` 增加多条件排序的能力。 - Network accessline 125
- [#4455](https://github.com/hyperf/hyperf/pull/4455) 新增命令 `gen:view-engine-cache` 可以预生成模板缓存,避免并发带来的一系列问题。 - Network accessline 126
- [#4453](https://github.com/hyperf/hyperf/pull/4453) 新增 `Hyperf\Tracer\Aspect\ElasticserachAspect`,用来记录 `elasticsearch` 客户端的调用记录。 - Network accessline 127
- [#4458](https://github.com/hyperf/hyperf/pull/4458) 新增 `Hyperf\Di\ScanHandler\ProcScanHandler`,用来支持 `Windows` + `Swow` 环境下启动服务。 - Network accessline 133
- [#4399](https://github.com/hyperf/hyperf/pull/4399) 修复使用 `RedisCluster` 时,无法使用 `scan` 方法的问题。 - Network accessline 137
- [#4409](https://github.com/hyperf/hyperf/pull/4409) 为 `session` 增加数据库支持。 - Network accessline 138
- [#4411](https://github.com/hyperf/hyperf/pull/4411) 为 `tracer` 组件,新增 `Hyperf\Tracer\Aspect\DbAspect`,用于记录 `hyperf/db` 组件产生的 `SQL` 日志。 - Network accessline 139
- [#4420](https://github.com/hyperf/hyperf/pull/4420) 为 `Hyperf\Amqp\IO\SwooleIO` 增加 `SSL` 支持。 - Network accessline 143
- [#4406](https://github.com/hyperf/hyperf/pull/4406) 删除 `Swoole PSR-0` 风格代码,更加友好的支持 `Swoole 5.0` 版本。 - Network accessline 144
- [#4429](https://github.com/hyperf/hyperf/pull/4429) 为 `Debug::getRefCount()` 方法增加类型检测,只能用于输出对象的 `RefCount`。 - Network accessline 150
- [#4347](https://github.com/hyperf/hyperf/pull/4347) 修复使用 `AMQP` 组件时,如果连接缓冲区溢出,会导致连接被绑定到多个协程从而报错的问题。 - Network accessline 151
- [#4373](https://github.com/hyperf/hyperf/pull/4373) 修复使用 `Snowflake` 组件时,由于 `getWorkerId()` 中存在 `IO` 操作进而导致协程切换,最终导致元数据生成重复的问题。 - Network accessline 155
- [#4344](https://github.com/hyperf/hyperf/pull/4344) 新增事件 `Hyperf\Crontab\Event\FailToExecute`,此事件会在 `Crontab` 任务执行失败时触发。 - Network accessline 156
- [#4348](https://github.com/hyperf/hyperf/pull/4348) 支持使用 `gen:*` 命令创建文件时,自动吊起对应的 `IDE`,并打开当前文件。 - Network accessline 160
- [#4350](https://github.com/hyperf/hyperf/pull/4350) 优化了未开启 `swoole.use_shortname` 时的错误信息。 - [#4360](https://github.com/hyperf/hyperf/pull/4360) 将 `Hyperf\Amqp\IO\SwooleIO` 进行重构,使用更加稳定和高效的 `Swoole\Coroutine\Socket` 而非 `Swoole\Coroutine\Cli - Network accessline 161
- [#4360](https://github.com/hyperf/hyperf/pull/4360) 将 `Hyperf\Amqp\IO\SwooleIO` 进行重构,使用更加稳定和高效的 `Swoole\Coroutine\Socket` 而非 `Swoole\Coroutine\Client`。 - Network accessline 167
- [#4338](https://github.com/hyperf/hyperf/pull/4338) 修复使用单测客户端时,路径中带有参数会导致无法正确匹配路由的问题。 - Network accessline 168
- [#4346](https://github.com/hyperf/hyperf/pull/4346) 修复使用组件 `php-amqplib/php-amqplib:3.1.1` 时,启动报错的问题。 - Network accessline 172
- [#4330](https://github.com/hyperf/hyperf/pull/4330) 为 `phar` 组件支持打包 `vendor/bin` 目录。 - Network accessline 173
- [#4331](https://github.com/hyperf/hyperf/pull/4331) 新增方法 `Hyperf\Testing\Debug::getRefCount($object)`。 - Network accessline 179
- [#4308](https://github.com/hyperf/hyperf/pull/4308) 修复执行 `server:watch` 时,因为使用相对路径导致 `collector-reload` 文件找不到的问题。 - Network accessline 183
- [#4317](https://github.com/hyperf/hyperf/pull/4317) 为 `Hyperf\Utils\Collection` 和 `Hyperf\Database\Model\Collection` 增强类型提示功能。 - Network accessline 189
- [#4283](https://github.com/hyperf/hyperf/pull/4283) 修复当 `GRPC` 结果为 `null` 时,`Hyperf\Grpc\Parser::deserializeMessage()` 报错的问题。 - Network accessline 193
- [#4284](https://github.com/hyperf/hyperf/pull/4284) 新增方法 `Hyperf\Utils\Network::ip()` 获取本地 `IP`。 - Network accessline 194
- [#4290](https://github.com/hyperf/hyperf/pull/4290) 为 `HTTP` 服务增加 `chunk` 功能。 - Network accessline 195
- [#4291](https://github.com/hyperf/hyperf/pull/4291) 为 `value()` 方法增加动态参数功能。 - Network accessline 196
- [#4293](https://github.com/hyperf/hyperf/pull/4293) 为 `server:watch` 命令增加相对路径支持。 - Network accessline 197
- [#4295](https://github.com/hyperf/hyperf/pull/4295) 为 `Hyperf\Database\Schema\Blueprint::bigIncrements()` 增加别名 `id()`。 - Network accessline 203
- [#4243](https://github.com/hyperf/hyperf/pull/4243) 修复使用 `parallel` 时,结果集的顺序与入参不一致的问题。 - Network accessline 207
- [#4109](https://github.com/hyperf/hyperf/pull/4109) 为 `hyperf/tracer` 增加 `PHP8` 的支持。 - Network accessline 208
- [#4260](https://github.com/hyperf/hyperf/pull/4260) 为 `hyperf/database` 增加指定索引的功能。 - Network accessline 214
- [#4252](https://github.com/hyperf/hyperf/pull/4252) 为 `Hyperf\RpcClient\AbstractServiceClient` 新增 `getServiceName()` 方法。 - Network accessline 218
- [#4253](https://github.com/hyperf/hyperf/pull/4253) 在扫描阶段时,如果类库找不到,则跳过且报出警告。 - Network accessline 224
- [#4200](https://github.com/hyperf/hyperf/pull/4200) 修复当 `runtime/caches` 不是目录时,使用文件缓存失败的问题。 - Network accessline 228
- [#4157](https://github.com/hyperf/hyperf/pull/4157) 为 `Hyperf\Utils\Arr` 增加 `Macroable` 支持。 - Network accessline 234
- [#4181](https://github.com/hyperf/hyperf/pull/4181) [#4192](https://github.com/hyperf/hyperf/pull/4192) 为框架增加 `psr/log` 组件版本 `v1.0`、`v2.0`、`v3.0` 的支持。 - Network accessline 238
- [#4171](https://github.com/hyperf/hyperf/pull/4171) 修复使用 `consul` 组件时,开启 `ACL` 验证后,健康检测失败的问题。 - Network accessline 239
- [#4188](https://github.com/hyperf/hyperf/pull/4188) 修复使用 `composer 1.x` 版本时,打包 `phar` 失败的问题。 - Network accessline 245
- [#4159](https://github.com/hyperf/hyperf/pull/4159) 为 `Macroable::mixin` 方法增加参数 `$replace`,当其设置为 `false` 时,会优先判断是否已经存在。 - Network accessline 249
- [#4158](https://github.com/hyperf/hyperf/pull/4158) 修复因为使用了 `Union` 类型,导致生成代理类失败的问题。 - Network accessline 253
- [#4159](https://github.com/hyperf/hyperf/pull/4159) [#4166](https://github.com/hyperf/hyperf/pull/4166) 将组件 `hyperf/macroable` 从 `hyperf/utils` 中分离出来。 - Network accessline 259
- [#4129](https://github.com/hyperf/hyperf/pull/4129) 新增方法 `Str::stripTags()` 和 `Stringable::stripTags()`。 - Network accessline 263
- [#4130](https://github.com/hyperf/hyperf/pull/4130) 修复生成模型时,因为使用了选项 `--with-ide` 和 `scope` 方法导致报错的问题。 - Network accessline 264
- [#4141](https://github.com/hyperf/hyperf/pull/4141) 修复验证器工厂不支持其他验证器的问题。 - Network accessline 270
- [#4101](https://github.com/hyperf/hyperf/pull/4101) 修复 Nacos 使用的密码携带特殊字符时,密码会被 `urlencode` 导致密码错误的问题。 - Network accessline 274
- [#4114](https://github.com/hyperf/hyperf/pull/4114) 优化 WebSocket 客户端初始化失败时的错误信息。 - Network accessline 275
- [#4119](https://github.com/hyperf/hyperf/pull/4119) 优化单测客户端在上传文件时,因为默认的上传路径已经存在,导致报错的问题(只发生在最新的 Swoole 版本中)。 - Network accessline 281
- [#4088](https://github.com/hyperf/hyperf/pull/4088) 修复使用定时器规则时,会将空字符串转化为 `0` 的问题。 - Network accessline 282
- [#4096](https://github.com/hyperf/hyperf/pull/4096) 修复当带有类型的动态参数生成代理类时,会出现类型错误的问题。 - Network accessline 288
- [#4061](https://github.com/hyperf/hyperf/pull/4061) 修复 `hyperf/metric` 组件与最新版本的 `prometheus_client_php` 存在冲突的问题。 - Network accessline 289
- [#4068](https://github.com/hyperf/hyperf/pull/4068) 修复命令行抛出错误时,退出码与实际不符的问题。 - Network accessline 290
- [#4076](https://github.com/hyperf/hyperf/pull/4076) 修复 `HTTP` 服务因返回数据不是标准 `HTTP` 协议时,导致服务宕机的问题。 - Network accessline 294
- [#4014](https://github.com/hyperf/hyperf/pull/4014) [#4080](https://github.com/hyperf/hyperf/pull/4080) 为 `kafka` 组件增加 `sasl` 和 `ssl` 的支持。 - Network accessline 295
- [#4045](https://github.com/hyperf/hyperf/pull/4045) [#4082](https://github.com/hyperf/hyperf/pull/4082) 为 `tracer` 组件新增配置 `opentracing.enable.exception`,用来判断是否收集异常信息。 - Network accessline 296
- [#4086](https://github.com/hyperf/hyperf/pull/4086) 支持收集接口 `Interface` 的注解信息。 - Network accessline 300
- [#4084](https://github.com/hyperf/hyperf/pull/4084) 优化了注解找不到时的错误信息。 - Network accessline 306
- [#4028](https://github.com/hyperf/hyperf/pull/4028) 修复 `grafana` 面板中,请求数结果计算错误的问题。 - Network accessline 307
- [#4030](https://github.com/hyperf/hyperf/pull/4030) 修复异步队列会因为解压缩模型失败,导致进程中断随后重启的问题。 - Network accessline 308
- [#4042](https://github.com/hyperf/hyperf/pull/4042) 修复因 `SocketIO` 服务关闭时清理过期的 `fd`,进而导致协程死锁的问题。 - Network accessline 312
- [#4013](https://github.com/hyperf/hyperf/pull/4013) 为 `Cookies` 增加 `sameSite=None` 的支持。 - Network accessline 313
- [#4017](https://github.com/hyperf/hyperf/pull/4017) 为 `Hyperf\Utils\Collection` 增加 `Macroable`。 - Network accessline 314
- [#4021](https://github.com/hyperf/hyperf/pull/4021) 为 `retry()` 方法中 `$callback` 匿名函数增加 `$attempts` 变量。 - Network accessline 315
- [#4040](https://github.com/hyperf/hyperf/pull/4040) 为 `AMQP` 组件新增方法 `ConsumerDelayedMessageTrait::getDeadLetterExchange()`,可以用来重写 `x-dead-letter-exchange` 参数。 - Network accessline 319
- [#4017](https://github.com/hyperf/hyperf/pull/4017) 从 `Hyperf\Database\Model\Collection` 中移除 `Macroable`,因为它的基类 `Hyperf\Utils\Collection` 已引入了对应的 `Macroable`。 - Network accessline 325
- [#3997](https://github.com/hyperf/hyperf/pull/3997) 修复 `Nats` 消费者会在连接超时后崩溃的问题。 - Network accessline 326
- [#3998](https://github.com/hyperf/hyperf/pull/3998) 修复 `Apollo` 不支持 `https` 协议的问题。 - Network accessline 330
- [#4009](https://github.com/hyperf/hyperf/pull/4009) 优化方法 `MethodDefinitionCollector::getOrParse()`,避免在 PHP8 环境下,触发即将废弃的错误。 - Network accessline 334
- [#4002](https://github.com/hyperf/hyperf/pull/4002) [#4012](https://github.com/hyperf/hyperf/pull/4012) 为验证器增加场景功能,允许不同场景下,使用不同的验证规则。 - Network accessline 335
- [#4011](https://github.com/hyperf/hyperf/pull/4011) 为工具类 `Hyperf\Utils\Str` 增加了一些新的便捷方法。 - Network accessline 341
- [#3969](https://github.com/hyperf/hyperf/pull/3969) 修复 PHP8 环境下使用 `Hyperf\Validation\Rules\Unique::__toString()` 导致类型错误的问题。 - Network accessline 342
- [#3979](https://github.com/hyperf/hyperf/pull/3979) 修复熔断器组件,`timeout` 变量无法使用的问题。 - Network accessline 343
- [#3986](https://github.com/hyperf/hyperf/pull/3986) 修复文件系统组件,开启 `SWOOLE_HOOK_NATIVE_CURL` 后导致 OSS hook 失败的问题。 - Network accessline 347
- [#3987](https://github.com/hyperf/hyperf/pull/3987) AMQP 组件支持延时队列。 - Network accessline 348
- [#3989](https://github.com/hyperf/hyperf/pull/3989) [#3992](https://github.com/hyperf/hyperf/pull/3992) 为热更新组件新增了配置 `command`,可以用来定义自己的启动脚本,支持 [nano](https://github.com/hyperf/nano) 组件。 - Network accessline 354
- [#3959](https://github.com/hyperf/hyperf/pull/3959) 修复验证器规则 `date` 在入参为 `string` 时,无法正常使用的问题。 - Network accessline 355
- [#3960](https://github.com/hyperf/hyperf/pull/3960) 修复协程风格服务下,`Crontab` 无法平滑关闭的问题。 - Network accessline 359
- [code-generator](https://github.com/hyperf/code-generator) 新增组件 `code-generator`,可以用来将 `Doctrine` 注解转化为 `PHP8` 的原生注解。 - Network accessline 363
- [#3957](https://github.com/hyperf/hyperf/pull/3957) 使用命令 `gen:model` 生成 `getAttribute` 注释时,支持基于 `@return` 注释返回对应的类型。 - Network accessline 369
- [#3925](https://github.com/hyperf/hyperf/pull/3925) 修复 `Nacos` 开启 `light beat` 功能后,心跳失败的问题。 - Network accessline 370
- [#3926](https://github.com/hyperf/hyperf/pull/3926) 修复配置项 `config_center.drivers.nacos.client` 无法正常工作的问题。 - Network accessline 374
- [#3924](https://github.com/hyperf/hyperf/pull/3924) 为 `Consul` 服务注册中心增加配置项 `services.drivers.consul.check`。 - Network accessline 375
- [#3932](https://github.com/hyperf/hyperf/pull/3932) 为 `AMQP` 消费者增加重新入队列的配置,允许用户返回 `NACK` 后,消息重入队列。 - Network accessline 376
- [#3941](https://github.com/hyperf/hyperf/pull/3941) 允许多路复用的 `RPC` 组件使用注册中心的能力。 - Network accessline 377
- [#3947](https://github.com/hyperf/hyperf/pull/3947) 新增方法 `Str::mask`,允许用户对一段文本某段内容打马赛克。 - Network accessline 381
- [#3944](https://github.com/hyperf/hyperf/pull/3944) 封装了读取 `Aspect` 元数据的方法。 - Network accessline 387
- [#3897](https://github.com/hyperf/hyperf/pull/3897) 修复因为 `lightBeatEnabled` 导致心跳失败,进而导致 `Nacos` 服务注册多次的问题。 - Network accessline 388
- [#3905](https://github.com/hyperf/hyperf/pull/3905) 修复 `AMQP` 连接在关闭时导致空指针的问题。 - Network accessline 389
- [#3906](https://github.com/hyperf/hyperf/pull/3906) 修复 `AMQP` 连接关闭时,因已经销毁所有等待通道而导致失败的问题。 - Network accessline 390
- [#3908](https://github.com/hyperf/hyperf/pull/3908) 修复使用了以 `CoordinatorManager` 为基础的循环逻辑时,自定义进程无法正常重启的问题。 - Network accessline 396
- [#3872](https://github.com/hyperf/hyperf/pull/3872) [#3873](https://github.com/hyperf/hyperf/pull/3873) 修复使用 `Nacos` 服务时,因为没有使用默认的组名,导致心跳失败的问题。 - Network accessline 397
- [#3877](https://github.com/hyperf/hyperf/pull/3877) 修复 `Nacos` 服务,心跳会被注册多次的问题。 - Network accessline 398
- [#3879](https://github.com/hyperf/hyperf/pull/3879) 修复热更新因为代理类被覆盖,导致无法正常使用的问题。 - Network accessline 402
- [#3877](https://github.com/hyperf/hyperf/pull/3877) 为 `Nacos` 服务,增加 `lightBeatEnabled` 支持。 - Network accessline 408
- [#3750](https://github.com/hyperf/hyperf/pull/3750) 修复使用 `SocketIO` 时,由于触发了一个不存在的命名空间,而导致致命错误的问题。 - Network accessline 409
- [#3828](https://github.com/hyperf/hyperf/pull/3828) 修复在 `PHP 8.0` 版本中,无法对 `Hyperf\Redis\Redis` 使用懒加载注入的问题。 - Network accessline 410
- [#3845](https://github.com/hyperf/hyperf/pull/3845) 修复 `watcher` 组件无法在 `v2.2` 版本中正常使用的问题。 - Network accessline 411
- [#3848](https://github.com/hyperf/hyperf/pull/3848) 修复 `Nacos` 组件无法像 `v2.1` 版本注册自身到 `Nacos` 服务中的问题。 - Network accessline 412
- [#3866](https://github.com/hyperf/hyperf/pull/3866) 修复 `Nacos` 实例无法正常注册元数据的问题。 - Network accessline 416
- [#3763](https://github.com/hyperf/hyperf/pull/3763) 使 `JsonResource::wrap()` 和 `JsonResource::withoutWrapping()` 支持链式调用。 - Network accessline 417
- [#3843](https://github.com/hyperf/hyperf/pull/3843) 在 `Nacos` 注册服务时,根据 `HTTP` 响应的返回码和数据协同判断,以确保是否已注册过。 - Network accessline 418
- [#3854](https://github.com/hyperf/hyperf/pull/3854) 为文件下载方法支持 `RFC 5987`,它允许使用 `UTF-8` 格式和 `URL` 格式化。
skills/hyperf/references/zh-cn/changelog/3.0.md
- Network accessline 7
- [#6764](https://github.com/hyperf/hyperf/pull/6764) 当遇到 `Premature end of data` 错误时,则认为当前数据库连接不可用,下次从连接池中取出来时,会被重连。 - Network accessline 13
- [#6693](https://github.com/hyperf/hyperf/pull/6693) 修复使用 `socket-io` 时,如果没有传入 `query` 会在 `data` 中存在 `?` 的情况下解析出错的问题。 - Network accessline 19
- [#6455](https://github.com/hyperf/hyperf/pull/6455) 优化 `Hyperf\SocketIOServer\Parser\Decoder::decode()` 的代码实现。 - Network accessline 25
- [#6321](https://github.com/hyperf/hyperf/pull/6321) 修复使用 `tracer` 组件时,`jaeger` 无法正确展示 `HTTP` 状态码的问题。 - Network accessline 31
- [#6297](https://github.com/hyperf/hyperf/pull/6297) 新增接口 `Hyperf\Crontab\Mutex\ServerNodeInterface` 用于使用 `Crontab` 的 `onOneServer` 功能时,自定义唯一键。 - Network accessline 32
- [#6300](https://github.com/hyperf/hyperf/pull/6300) 新增配置 `rate_limit.storage.options.pool` 用于使用限流器时,设置 `Redis` 连接池。 - Network accessline 33
- [#6306](https://github.com/hyperf/hyperf/pull/6306) 为 `RPC` 服务增加请求级别生命周期。 - Network accessline 37
- [#6298](https://github.com/hyperf/hyperf/pull/6298) 修复 `Hyperf\Framework\Logger\StdoutLogger` 中的 `context` 参数不支持复杂对象的问题。 - Network accessline 38
- [#6303](https://github.com/hyperf/hyperf/pull/6303) 修复 `PDO` 链接在超时时,不会被重试的问题。 - Network accessline 42
- [#6302](https://github.com/hyperf/hyperf/pull/6302) 使用 `command` 模式调用定时任务时,设置 `setCatchExceptions` 为 false。 - Network accessline 43
- [#6315](https://github.com/hyperf/hyperf/pull/6315) 优化链路追踪组件从上下文读取 `Tracer` 时,不会多一次实例化的问题。 - Network accessline 49
- [#6283](https://github.com/hyperf/hyperf/pull/6283) 为 `GRPC` 服务增加请求周期事件支持。 - Network accessline 50
- [#6292](https://github.com/hyperf/hyperf/pull/6292) 增加 `Validator::setValue` 方法,并设置 `Validator::getValue` 为公共方法。 - Network accessline 54
- [#6284](https://github.com/hyperf/hyperf/pull/6284) 修复使用命令行启动 `Crontab` 时,当抛出异常后,脚本无法正常关闭的问题。 - Network accessline 55
- [#6291](https://github.com/hyperf/hyperf/pull/6291) 修复 `Crontab` 启动锁机制时,偶发无法正常结束的问题。 - Network accessline 59
- [#6293](https://github.com/hyperf/hyperf/pull/6293) 优化方法 `Arr::flatten`,使其比之前运行效率更高。 - Network accessline 65
- [#6272](https://github.com/hyperf/hyperf/pull/6272) 新增开关 `metric.enable_command_metric`。 - Network accessline 66
- [#6273](https://github.com/hyperf/hyperf/pull/6273) 为 `Hyperf\HttpServer\Router\Dispatched` 增加 `serverName` 参数。 - Network accessline 70
- [#6261](https://github.com/hyperf/hyperf/pull/6261) 避免使用 `class_uses_recursive` 时,因为 `class_parents` 返回 `false` 导致报错的问题。 - Network accessline 71
- [#6271](https://github.com/hyperf/hyperf/pull/6271) 使用 `Crontab` 时,限制匿名函数方式在 `WorkerStrategy` 策略中使用。 - Network accessline 77
- [#6236](https://github.com/hyperf/hyperf/pull/6236) 为 `GenerateModelIDEVisitor` 增加 `unionType` 支持。 - Network accessline 78
- [#6246](https://github.com/hyperf/hyperf/pull/6246) [#6252](https://github.com/hyperf/hyperf/pull/6252) 增加 `Crontab` 生命周期事件。 - Network accessline 79
- [#6249](https://github.com/hyperf/hyperf/pull/6249) 为 `Crontab` 增加 `closure` 执行类型。 - Network accessline 83
- [#6239](https://github.com/hyperf/hyperf/pull/6239) 优化 `AMQP` 代码,替换一些即将废弃的方法,并增加 `BeforeConsume` 事件。 - Network accessline 84
- [#6250](https://github.com/hyperf/hyperf/pull/6250) 优化 `generateModelIdeVisitor` 注释的生成。 - Network accessline 85
- [#6253](https://github.com/hyperf/hyperf/pull/6253) 当收集类反射数据失败时,输出错误信息到终端。 - Network accessline 86
- [#6256](https://github.com/hyperf/hyperf/pull/6256) 优化 `hyperf/translation` 部分代码,为成员变量增加类型限制。 - Network accessline 92
- [#6224](https://github.com/hyperf/hyperf/pull/6224) 为 `Response::xml()` 等方法,增加 `charset` 参数。 - Network accessline 93
- [#6232](https://github.com/hyperf/hyperf/pull/6232) 为 `Hyperf\HttpServer\Router\Dispatched` 增加 `isNotFound` 方法。 - Network accessline 94
- [#6233](https://github.com/hyperf/hyperf/pull/6233) 为 `hyperf/command` 组件的 `AfterExecute` 事件,增加 `exception` 入参。 - Network accessline 98
- [#6226](https://github.com/hyperf/hyperf/pull/6226) 当 `grpc` 连接关闭时,不再发送数据。 - Network accessline 99
- [#6228](https://github.com/hyperf/hyperf/pull/6228) [#6229](https://github.com/hyperf/hyperf/pull/6229) `FormRequest` 中的 `rules` 方法不再必填。 - Network accessline 105
- [#6217](https://github.com/hyperf/hyperf/pull/6217) 修复 `Str::replaceLast` 方法,在被替换内容为空时,无法正常使用的问题。 - Network accessline 109
- [#6209](https://github.com/hyperf/hyperf/pull/6209) 为 `Redis` [哨兵模式](https://github.com/phpredis/phpredis/blob/develop/sentinel.md#examples-for-version-60-or-later) 增加 `v6` 版本的支持。 - Network accessline 115
- [#6188](https://github.com/hyperf/hyperf/pull/6188) 为 `Redis` 的 options 配置增加 string 类型 key 支持。 - Network accessline 116
- [#6193](https://github.com/hyperf/hyperf/pull/6193) 为 `Swow` 服务增加 HTTP 和 WebSocket 双协议端口支持。 - Network accessline 117
- [#6198](https://github.com/hyperf/hyperf/pull/6198) 为 `hyperf/tracer` 组件增加 `RpcAspect` 用以替代 `JsonRpcAspect`。 - Network accessline 118
- [#6200](https://github.com/hyperf/hyperf/pull/6200) 为 `hyperf/tracer` 组件增加 `ElasticserachAspect` 和 `CoroutineAspect` 的开关。 - Network accessline 119
- [#6203](https://github.com/hyperf/hyperf/pull/6203) 为 `hyperf/tracer` 组件增加 `Hyperf\Tracer\Aspect\GrpcAspect`。 - Network accessline 120
- [#6207](https://github.com/hyperf/hyperf/pull/6207) 为 `kafka` 组件增加 `exception_callback` 配置。 - Network accessline 126
- [#6183](https://github.com/hyperf/hyperf/pull/6183) 修复使用单测组件时,中间件权重无法正常使用的问题。 - Network accessline 127
- [#6185](https://github.com/hyperf/hyperf/pull/6185) 修复使用 `socketio-server` 时,`cleanUpExpiredOnce` 当 `sids` 为空时,无法正常使用的问题。 - Network accessline 131
- [#6177](https://github.com/hyperf/hyperf/pull/6177) 使 `hyperf/codec` 组件 `Base62` 工具类,可以更加便捷的被继承重写。 - Network accessline 137
- [#6156](https://github.com/hyperf/hyperf/pull/6156) 为 `stringable` 组件增加了 `Str::replaceStart()` 等方法。 - Network accessline 141
- [#6154](https://github.com/hyperf/hyperf/pull/6154) 在使用验证器组件时,如果原生方法 `json_validate` 存在,则使用其进行 `Json` 格式验证。 - Network accessline 142
- [#6157](https://github.com/hyperf/hyperf/pull/6157) 在使用 `trace` 组件时,只记录打开记录异常开关,并且不在忽略列表中的信息。 - Network accessline 146
- [#6160](https://github.com/hyperf/hyperf/pull/6160) 修复当设置配置 `services.enable.register` 为 `false` 时,仍然会发布服务到服务中心的问题。 - Network accessline 147
- [#6162](https://github.com/hyperf/hyperf/pull/6162) 修复使用 `Crontab` 的时,当执行任务超过默认超时时间后,则不能很好的进行控制任务运行时机的问题。 - Network accessline 153
- [#6062](https://github.com/hyperf/hyperf/pull/6057) 为 `hyperf/tracer` 新增 `RequestTraceListener` 监听器。 - Network accessline 154
- [#6143](https://github.com/hyperf/hyperf/pull/6143) 为 `hyperf/tracer` 增加 `ignore_exceptions` 配置。 - Network accessline 158
- [#6151](https://github.com/hyperf/hyperf/pull/6151) 优化 `hyperf/kafka` 组件中 `FailToConsume` 的触发时机。 - Network accessline 162
- [#6117](https://github.com/hyperf/hyperf/pull/6117) 修复 `GRPC` 客户端无法被复用的问题。 - Network accessline 163
- [#6146](https://github.com/hyperf/hyperf/pull/6146) 修复 `validateJson` 验证规则在高于 PHP 8.0 版本后,无法正常使用的问题。 - Network accessline 169
- [#6097](https://github.com/hyperf/hyperf/pull/6097) 修复使用非 `zipkin` 的 `tracer` 组件时,会出现报错的问题。 - Network accessline 170
- [#6099](https://github.com/hyperf/hyperf/pull/6099) 修复使用 `Redis` 时,恒定频率释放链接模式无法正常使用的问题。 - Network accessline 171
- [#6110](https://github.com/hyperf/hyperf/pull/6110) 修复使用 `Nacos GRPC` 的配置中心时,多进程模式无法正常工作的问题。 - Network accessline 175
- [#6096](https://github.com/hyperf/hyperf/pull/6096) 为 `Crontab` 组件中的事件增加 `getThrowable` 方法。 - Network accessline 176
- [#6094](https://github.com/hyperf/hyperf/pull/6094) 新增验证器规则 `ExcludeIf` `File` `ImageFile` 和 `ProhibitedIf`。 - Network accessline 177
- [#6112](https://github.com/hyperf/hyperf/pull/6112) 为 `Hyperf\Kafka\Producer` 增加 `sendAsync` 和 `sendBatchAsync` 两个新方法。 - Network accessline 181
- [#6098](https://github.com/hyperf/hyperf/pull/6098) 优化 `hyperf/tracer` `kafka` 上报器,增加其稳定性。 - Network accessline 182
- [#6100](https://github.com/hyperf/hyperf/pull/6100) 优化 `hyperf/tracer` `HTTP` 上报器,增加其性能和稳定性。 - Network accessline 183
- [#6108](https://github.com/hyperf/hyperf/pull/6108) 优化命令 `describe:routes`,展示排序后的中间件。 - Network accessline 184
- [#6111](https://github.com/hyperf/hyperf/pull/6111) 为 `tracer` 上报器,增加日志输出能力。 - Network accessline 190
- [#6060](https://github.com/hyperf/hyperf/pull/6060) 为 `tracer` 组件增加 `request.uri` 标签。 - Network accessline 191
- [#6063](https://github.com/hyperf/hyperf/pull/6063) 为 `Request` 相关事件,增加服务名参数 `$server`。 - Network accessline 192
- [#6070](https://github.com/hyperf/hyperf/pull/6070) 为组件 `hyperf/rpc-multilex` 增加 `php_serialize` 协议。 - Network accessline 193
- [#6069](https://github.com/hyperf/hyperf/pull/6069) [#6075](https://github.com/hyperf/hyperf/pull/6075) 为组件 `hyperf/tracer` 增加 `kafka` 上报器。 - Network accessline 194
- [#6078](https://github.com/hyperf/hyperf/pull/6078) 新增方法 `Hyperf\Support\Composer::hasPackage()`。 - Network accessline 195
- [#6083](https://github.com/hyperf/hyperf/pull/6083) [#6084](https://github.com/hyperf/hyperf/pull/6084) 支持中间件排序功能。 - Network accessline 199
- [#6065](https://github.com/hyperf/hyperf/pull/6065) 修复方法 `Context::override` 和 `Context::getOrSet` 没法对指定协程 ID 使用的问题。 - Network accessline 203
- [#6046](https://github.com/hyperf/hyperf/pull/6046) 从协程上线文中读取 `tracer` 实例。 - Network accessline 204
- [#6061](https://github.com/hyperf/hyperf/pull/6061) 为 `server` 配置,增加 `key-value` 模式的支持。 - Network accessline 205
- [#6077](https://github.com/hyperf/hyperf/pull/6077) 当使用 `#[Hyperf\Constants\Annotation\Constants]` 时,避免 `IDE` 触发 `deprecated` 警告。 - Network accessline 211
- [#6011](https://github.com/hyperf/hyperf/pull/6011) 修复 `invocable` 控制器路由无法正常使用验证器的 BUG。 - Network accessline 212
- [#6013](https://github.com/hyperf/hyperf/pull/6013) 修复 `no_aspect` 会被覆盖的问题。 - Network accessline 213
- [#6053](https://github.com/hyperf/hyperf/pull/6053) 修复方法 `Arr::has` 时,`Interger` 类型参数会导致报错的问题。 - Network accessline 217
- [#6023](https://github.com/hyperf/hyperf/pull/6023) 使用 `Tracer` 实例时,优先从协程上下文中获取。 - Network accessline 218
- [#6027](https://github.com/hyperf/hyperf/pull/6027) 优化协程下 `Tracer` 的使用逻辑。 - Network accessline 222
- [#6044](https://github.com/hyperf/hyperf/pull/6044) 设置 `Hyperf\Coroutine\Traits\Container` 为即将废弃。 - Network accessline 228
- [#5996](https://github.com/hyperf/hyperf/pull/5996) 允许 `tracer` 切入 `GuzzleHttp\Client::request()` 方法,进行数据记录。 - Network accessline 232
- [#6004](https://github.com/hyperf/hyperf/pull/6004) 修复在使用 `Command` 时,抛出异常后,命令行退出码不合规的问题。 - Network accessline 238
- [#5969](https://github.com/hyperf/hyperf/pull/5969) 修复使用 `Str::contains` 时,如果 `$needles` 为 `[null]` 则会导致判断错误的问题。 - Network accessline 239
- [#5970](https://github.com/hyperf/hyperf/pull/5970) 修复使用 `Str::startsWith` 和 `Str::endsWith` 时,如果 `$needles` 为 `[null]` 则会导致判断错误的问题。 - Network accessline 243
- [#5971](https://github.com/hyperf/hyperf/pull/5971) 新增方法 `Str::containsIgnoreCase()` 可以在不区分大小写的情况下,用来判断是否是包含关系。 - Network accessline 249
- [#5947](https://github.com/hyperf/hyperf/pull/5947) 修复使用 `amqp` 时,存在多个配置时,协程锁失效的问题。 - Network accessline 253
- [#5954](https://github.com/hyperf/hyperf/pull/5954) 优化模型生成器,使其生成正确的参数注释。 - Network accessline 257
- [#5951](https://github.com/hyperf/hyperf/pull/5951) 为 `Session` 的 `Cookies` 功能增加 `SameSite` 支持。 - Network accessline 258
- [#5955](https://github.com/hyperf/hyperf/pull/5955) 为 `Nacos` 服务注册与发现,增加 `access_key` 和 `access_secret` 的支持。 - Network accessline 259
- [#5957](https://github.com/hyperf/hyperf/pull/5957) 新增 `Hyperf\Codec\Packer\IgbinarySerializerPacker`。 - Network accessline 260
- [#5962](https://github.com/hyperf/hyperf/pull/5962) 当使用测试组件时,增加支持修改子协程上下文的能力。 - Network accessline 266
- [#5921](https://github.com/hyperf/hyperf/pull/5921) 修复 `http2-client` 在没有开启心跳时,无法正常关闭的问题。 - Network accessline 267
- [#5923](https://github.com/hyperf/hyperf/pull/5923) 修复 `nacos grpc client` 当进程退出时,无法友好关闭的问题。 - Network accessline 268
- [#5922](https://github.com/hyperf/hyperf/pull/5922) 修复使用 `grpc-client` 时,会找不到 `ApplicationContext` 的问题。 - Network accessline 272
- [#5924](https://github.com/hyperf/hyperf/pull/5924) 当进程退出时,隐藏 `nacos grpc client` 相关的正常的错误信息。 - Network accessline 278
- [#5909](https://github.com/hyperf/hyperf/pull/5909) 修复 `ACM` 配置中心因 `client::$servers` 没有进行初始化而报错的问题。 - Network accessline 279
- [#5911](https://github.com/hyperf/hyperf/pull/5911) 修复 `Nacos Grpc 客户端` 权限验证失败的问题。 - Network accessline 280
- [#5912](https://github.com/hyperf/hyperf/pull/5912) 修复 `Nacos Grpc 客户端` 在 `Nacos 服务` 重启后,重连失败的问题。 - Network accessline 284
- [#5895](https://github.com/hyperf/hyperf/pull/5895) 为验证器规则 `Integer` 和 `Boolean` 增加严格模式。 - Network accessline 288
- [#5910](https://github.com/hyperf/hyperf/pull/5910) 优化工厂类 `NacosClientFactory`,使其实例化 `NacosClient` 而非 `Nacos Application` 对象。 - Network accessline 294
- [#5880](https://github.com/hyperf/hyperf/pull/5880) 修复因 `Swagger` 服务名随机成为数字时,导致服务无法正常启动的问题。 - Network accessline 295
- [#5890](https://github.com/hyperf/hyperf/pull/5890) 增加了部分,需要重连 `PDO` 的错误信息,避免 `PDO` 链接无法重连的问题。 - Network accessline 299
- [#5886](https://github.com/hyperf/hyperf/pull/5886) 当使用 `hyperf/db` 连接 `clickhouse` 时,如果 `SQL` 执行错误,则会抛出异常。 - Network accessline 305
- [#5861](https://github.com/hyperf/hyperf/pull/5861) 修复缓存组件中,使用 `CoroutineMemory` 时,`CoroutineMemory::clearPrefix()` 无法正常工作的问题。 - Network accessline 309
- [#5858](https://github.com/hyperf/hyperf/pull/5858) 当调用数据库组件中 `chunkById` 时,如果 `Id` 为 `Null`,则抛出异常。 - Network accessline 315
- [#5829](https://github.com/hyperf/hyperf/pull/5829) 修复 `Hyperf\Database\Model\Builder::value()` 当使用形如 `table.column` 的字段时,无法正常使用的问题。 - [#5831](https://github.com/hyperf/hyperf/pull/5831) 修复在特殊场景下 `socket.io` 组件在解析 `namespace` 时,会造成死循环的问题。 - Network accessline 316
- [#5831](https://github.com/hyperf/hyperf/pull/5831) 修复在特殊场景下 `socket.io` 组件在解析 `namespace` 时,会造成死循环的问题。 - Network accessline 322
- [#5794](https://github.com/hyperf/hyperf/pull/5794) 修复代理类中 `__FILE__` 和 `__DIR__` 定位错误的问题。 - Network accessline 323
- [#5803](https://github.com/hyperf/hyperf/pull/5803) 修复组件 `hyperf/http-server` 不适配新版本 `Psr7` 的问题。 - Network accessline 324
- [#5808](https://github.com/hyperf/hyperf/pull/5808) 修复验证器规则 `le`、`lte`、`gt`、`gte` 不会正常比较 `numeric` 和 `string`。 - Network accessline 328
- [#5789](https://github.com/hyperf/hyperf/pull/5789) 支持高版本 `psr/http-message`。 - Network accessline 329
- [#5806](https://github.com/hyperf/hyperf/pull/5806) 优化 Swow 服务,默认情况下合并通用配置。 - Network accessline 330
- [#5814](https://github.com/hyperf/hyperf/pull/5814) 增加方法 `build_sql`,在抛出异常 `QueryException` 时,可以快速的构建 `SQL` . - Network accessline 336
- [#5757](https://github.com/hyperf/hyperf/pull/5757) 支持 `Nacos` 服务注册与发现签名机制。 - Network accessline 337
- [#5765](https://github.com/hyperf/hyperf/pull/5765) 为 `database` 组件增加全文检索的功能。 - Network accessline 341
- [#5782](https://github.com/hyperf/hyperf/pull/5782) 修复 `prometheus` 无法正常收集 `histograms` 的问题。 - Network accessline 345
- [#5768](https://github.com/hyperf/hyperf/pull/5768) 为 `Hyperf\Command\Annotation\Command` 组件增加参数支持。 - Network accessline 346
- [#5780](https://github.com/hyperf/hyperf/pull/5780) 修复 `Zipkin\Propagation\Map` 中 `String` 类型检测错误的问题。 - Network accessline 352
- [#5760](https://github.com/hyperf/hyperf/pull/5760) 为组件 `hyperf/translation` 组件的助手函数增加命名空间。 - Network accessline 353
- [#5761](https://github.com/hyperf/hyperf/pull/5761) 新增方法 `Hyperf\Coordinator\Timer::until()`. - Network accessline 357
- [#5741](https://github.com/hyperf/hyperf/pull/5741) 为 `Hyperf\DB\MySQLConnection` 增加即将过期的标签。 - Network accessline 358
- [#5702](https://github.com/hyperf/hyperf/pull/5702) 优化了 `Hyperf\Metric\Adapter\Prometheus\Redis` 的代码,使其允许被重写 `KEY` 键前缀。 - Network accessline 359
- [#5762](https://github.com/hyperf/hyperf/pull/5762) 自定义进程默认使用非阻塞模式。 - Network accessline 365
- [#5721](https://github.com/hyperf/hyperf/pull/5721) 为 `Request` 生命周期事件,增加 `exception` 参数。 - Network accessline 366
- [#5723](https://github.com/hyperf/hyperf/pull/5723) 为 `hyperf/db` 组件增加 `Swoole5.x` 的 `PgSQL` 支持。 - Network accessline 367
- [#5725](https://github.com/hyperf/hyperf/pull/5725) 为 `hyperf/db` 组件增加 `Swoole4.x` 的 `PgSQL` 支持。 - Network accessline 368
- [#5731](https://github.com/hyperf/hyperf/pull/5731) 新增方法 `Arr::hasAny()`。 - Network accessline 372
- [#5726](https://github.com/hyperf/hyperf/pull/5726) [#5730](https://github.com/hyperf/hyperf/pull/5730) 修复使用 `pgsql-swoole` 类型的 `ORM` 时,`PgSQL` 链接不会自动初始化的问题。 - Network accessline 376
- [#5718](https://github.com/hyperf/hyperf/pull/5718) 优化了 `view-engine` 组件的代码,并增加了一些单元测试。 - Network accessline 377
- [#5719](https://github.com/hyperf/hyperf/pull/5719) 优化了 `metric` 组件的代码,并增加了一些单元测试。 - Network accessline 378
- [#5720](https://github.com/hyperf/hyperf/pull/5720) 优化了 `Hyperf\Metric\Listener\OnPipeMessage` 的代码,来避免消息阻塞的问题。 - Network accessline 384
- [#5707](https://github.com/hyperf/hyperf/pull/5707) 新增助手函数 `Hyperf\Config\config`。 - Network accessline 385
- [#5711](https://github.com/hyperf/hyperf/pull/5711) 新增方法 `Arr::mapWithKeys()`。 - Network accessline 386
- [#5715](https://github.com/hyperf/hyperf/pull/5715) 增加请求级别生命周期事件。 - Network accessline 390
- [#5709](https://github.com/hyperf/hyperf/pull/5709) 当日志组不存在时,修复错误日志记录有误的问题。 - Network accessline 391
- [#5713](https://github.com/hyperf/hyperf/pull/5713) 为 `Hyperf\SuperGlobals\Proxy\Server` 增加通过自身进行实例化的能力。 - Network accessline 395
- [#5716](https://github.com/hyperf/hyperf/pull/5716) 为协程风格服务增加超全局变量的支持。 - Network accessline 401
- [#5679](https://github.com/hyperf/hyperf/pull/5679) 修复 `#[Task]` 注解的 `$timeout` 类型与 `TaskAspect` 不一致的问题。 - Network accessline 402
- [#5684](https://github.com/hyperf/hyperf/pull/5684) 修复使用了 `break` 语法后,`blade` 视图模板无法正常使用的问题。 - Network accessline 406
- [#5680](https://github.com/hyperf/hyperf/pull/5680) 为 `rpc-multiplex` 增加存储 `RPC` 上下文的能力。 - Network accessline 407
- [#5695](https://github.com/hyperf/hyperf/pull/5695) 为数据库迁移组件,增加设置 `datetime` 类型的创建时间和修改时间的功能。 - Network accessline 408
- [#5699](https://github.com/hyperf/hyperf/pull/5699) 增加 `Model::resolveRelationUsing()`,用来动态创建模型关系。 - Network accessline 412
- [#5694](https://github.com/hyperf/hyperf/pull/5694) 将 `hyperf/utils` 从 `hyperf/rpc` 组件中移除。 - Network accessline 413
- [#5696](https://github.com/hyperf/hyperf/pull/5694) 使用 `Hyperf\Coroutine\Coroutine::sleep()` 替代 `Swoole\Coroutine::sleep()`。 - Network accessline 419
- [#5672](https://github.com/hyperf/hyperf/pull/5672) 将部分 `utils` 中的方法,复制到 `hyperf/support` 组件中,并增加对应的命名空间。 - Network accessline 423
- [#5662](https://github.com/hyperf/hyperf/pull/5662) 修复 `pgsql-swoole` 执行失败时,无法抛出异常的问题。 - Network accessline 427
- [#5660](https://github.com/hyperf/hyperf/pull/5660) 将 `hyperf/codec` 从 `hyperf/utils` 分离出来。 - Network accessline 428
- [#5663](https://github.com/hyperf/hyperf/pull/5663) 将 `hyperf/serializer` 从 `hyperf/utils` 分离出来。 - Network accessline 429
- [#5666](https://github.com/hyperf/hyperf/pull/5666) 将 `Packers` 从 `hyperf/utils` 分离到 `hyperf/codec` 中。 - Network accessline 430
- [#5668](https://github.com/hyperf/hyperf/pull/5668) 将 `hyperf/support` 从 `hyperf/utils` 分离出来。 - Network accessline 431
- [#5670](https://github.com/hyperf/hyperf/pull/5670) 将 `hyperf/code-parser` 从 `hyperf/utils` 分离出来。 - Network accessline 432
- [#5671](https://github.com/hyperf/hyperf/pull/5671) 使用 `Hyperf\Coroutine\Channel\Pool` 代替 `Hyperf\Utils\ChannelPool` 。 - Network accessline 433
- [#5674](https://github.com/hyperf/hyperf/pull/5674) 将 `Hyperf\Utils` 命名空间的类和方法,使用新组件进行替换。 - Network accessline 439
- [#5642](https://github.com/hyperf/hyperf/pull/5642) 修复使用批量读取模型缓存时,遇到不存在的数据时,无法初始化空缓存的问题。 - Network accessline 440
- [#5643](https://github.com/hyperf/hyperf/pull/5643) 修复使用批量读取模型缓存时,空缓存无法正常使用的问题。 - Network accessline 441
- [#5649](https://github.com/hyperf/hyperf/pull/5649) 修复协程风格下,无法初始化数据库字段收集器的问题。 - Network accessline 445
- [#5634](https://github.com/hyperf/hyperf/pull/5634) 新增助手函数 `Hyperf\Stringable\str()`。 - Network accessline 446
- [#5639](https://github.com/hyperf/hyperf/pull/5639) 新增方法 `Redis::pipeline()` 和 `Redis::transaction()`。 - Network accessline 447
- [#5641](https://github.com/hyperf/hyperf/pull/5641) 为模型缓存 `loadCache` 增加嵌套初始化缓存的能力。 - Network accessline 448
- [#5646](https://github.com/hyperf/hyperf/pull/5646) 增加 `PriorityDefinition` 类,来处理容器 `dependencies` 优先级的问题。 - Network accessline 452
- [#5634](https://github.com/hyperf/hyperf/pull/5634) 使用 `Hyperf\Stringable\Str` 替代 `Hyperf\Utils\Str`。 - Network accessline 453
- [#5636](https://github.com/hyperf/hyperf/pull/5636) 优化 `kafka` 消费者,启动时等待消费过长的问题。 - Network accessline 454
- [#5648](https://github.com/hyperf/hyperf/pull/5648) 将依赖 `hyperf/utils` 从 `hyperf/guzzle` 中移除。 - Network accessline 460
- [#5627](https://github.com/hyperf/hyperf/pull/5627) 修复方法 `Hyperf\Context\Context::destroy` 支持协程下调用。 - Network accessline 464
- [#5616](https://github.com/hyperf/hyperf/pull/5616) 将 `ApplicationContext` 从 `hyperf/utils` 分离到 `hyperf/context`。 - Network accessline 465
- [#5617](https://github.com/hyperf/hyperf/pull/5617) 将 `hyperf/guzzle` 从 `hyperf/consul` 依赖中移除。 - Network accessline 466
- [#5618](https://github.com/hyperf/hyperf/pull/5618) 支持在 Swagger 面板中设置默认路由。 - Network accessline 467
- [#5619](https://github.com/hyperf/hyperf/pull/5619) [#5620](https://github.com/hyperf/hyperf/pull/5620) 将 `hyperf/coroutine` 从 `hyperf/utils` 分离出来。 - Network accessline 468
- [#5621](https://github.com/hyperf/hyperf/pull/5621) 使用 `Hyperf\Context\ApplicationContext` 代替 `Hyperf\Utils\ApplicationContext`。 - Network accessline 469
- [#5622](https://github.com/hyperf/hyperf/pull/5622) 将 `CoroutineProxy` 从 `hyperf/utils` 分离到 `hyperf/context`。 - Network accessline 470
- [#5623](https://github.com/hyperf/hyperf/pull/5623) 使用 `Hyperf\Coroutine\Coroutine` 替代 `Hyperf\Utils\Coroutine`。 - Network accessline 471
- [#5624](https://github.com/hyperf/hyperf/pull/5624) 将 `Channel` 相关方法从 `hyperf/utils` 分离到 `hyperf/coroutine`。 - Network accessline 472
- [#5629](https://github.com/hyperf/hyperf/pull/5629) 将 `Hyperf\Utils\Arr` 继承 `Hyperf\Collection\Arr`。 - Network accessline 478
- [#5606](https://github.com/hyperf/hyperf/pull/5606) 新增配置 `server.options.send_channel_capacity` 用来控制使用 `协程风格` 服务时,是否使用 `SafeSocket` 来返回数据。 - Network accessline 482
- [#5593](https://github.com/hyperf/hyperf/pull/5593) [#5598](https://github.com/hyperf/hyperf/pull/5598) 使用 `Hyperf\Collection\Collection` 替代 `Hyperf\Utils\Collection`。 - Network accessline 483
- [#5594](https://github.com/hyperf/hyperf/pull/5594) 使用 `Hyperf\Collection\Arr` 替代 `Hyperf\Utils\Arr`。 - Network accessline 484
- [#5596](https://github.com/hyperf/hyperf/pull/5596) 将 `hyperf/pipeline` 从 `hyperf/utils` 分离出来。 - Network accessline 485
- [#5599](https://github.com/hyperf/hyperf/pull/5599) 使用 `Hyperf\Pipeline\Pipeline` 替代 `Hyperf\Utils\Pipeline`。 - Network accessline 491
- [#5578](https://github.com/hyperf/hyperf/pull/5578) 修复了无法序列化 `Crontab` 的问题。 - Network accessline 492
- [#5579](https://github.com/hyperf/hyperf/pull/5579) 修复 `crontab:run` 无法正常工作的问题。 - Network accessline 496
- [#5572](https://github.com/hyperf/hyperf/pull/5572) 优化了 `HTTP` 服务,使用 `WritableConnection` 实现,支持 `Swow`。 - Network accessline 497
- [#5577](https://github.com/hyperf/hyperf/pull/5577) 将组件 `hyperf/collection` 从 `hyperf/utils` 分离。 - Network accessline 498
- [#5580](https://github.com/hyperf/hyperf/pull/5580) 将组件 `hyperf/conditionable` 和 `hyperf/tappable` 从 `hyperf/utils` 分离。 - Network accessline 499
- [#5585](https://github.com/hyperf/hyperf/pull/5585) 优化 `service-governance` 组件,去除了 `consul` 的依赖关系。 - Network accessline 505
- [#5561](https://github.com/hyperf/hyperf/pull/5561) 为 `hyperf/kafka` 增加自定义定时器的配置。 - Network accessline 506
- [#5562](https://github.com/hyperf/hyperf/pull/5562) 为 `MySQL` 数据库组件,增加 `upsert()` 支持。 - Network accessline 507
- [#5563](https://github.com/hyperf/hyperf/pull/5563) 为 `Crontab` 任务增加是否执行完的逻辑。 - Network accessline 511
- [#5544](https://github.com/hyperf/hyperf/pull/5554) 为 `grpc-server` 组件取消 `hyperf/rpc` 的依赖。 - Network accessline 512
- [#5550](https://github.com/hyperf/hyperf/pull/5550) 优化了 `Coordinator Timer` 和 `Crontab Parser` 的代码。 - Network accessline 513
- [#5566](https://github.com/hyperf/hyperf/pull/5566) 基于模型生成 `Swagger Schemas` 时,优化变量类型可以为 `Null`。 - Network accessline 514
- [#5569](https://github.com/hyperf/hyperf/pull/5569) 优化了 `Crontab RunCommand` 的依赖关系。 - Network accessline 520
- [#4112](https://github.com/hyperf/hyperf/pull/4112) 新增配置项 `kafka.default.enable` 用来控制消费者是否启动。 - [#5533](https://github.com/hyperf/hyperf/pull/5533) [#5535](https://github.com/hyperf/hyperf/pull/5535) 为 `kafka` 组件增加 `client` 和 `socket` 配置, - Network accessline 521
- [#5533](https://github.com/hyperf/hyperf/pull/5533) [#5535](https://github.com/hyperf/hyperf/pull/5535) 为 `kafka` 组件增加 `client` 和 `socket` 配置,允许开发者自定义。 - Network accessline 522
- [#5536](https://github.com/hyperf/hyperf/pull/5536) 新增组件 `hyperf/http2-client`。 - Network accessline 523
- [#5538](https://github.com/hyperf/hyperf/pull/5538) 为 `hyperf/http2-client` 增加双向流支持。 - Network accessline 524
- [#5511](https://github.com/hyperf/hyperf/pull/5511) 将 `GRPC` 服务统一到 `RPC` 服务中,可以更加方便的进行服务注册与发现。 - Network accessline 525
- [#5543](https://github.com/hyperf/hyperf/pull/5543) 增加 `Nacos` 双向流支持,可以监听到配置中心实时更新的事件。 - Network accessline 526
- [#5545](https://github.com/hyperf/hyperf/pull/5545) 为组件 `hyperf/http2-client` 增加双向流相关的测试。 - Network accessline 527
- [#5546](https://github.com/hyperf/hyperf/pull/5546) 为 `Nacos` 配置中心增加 `GRPC` 功能,可以实时监听配置的变化。 - Network accessline 531
- [#5539](https://github.com/hyperf/hyperf/pull/5539) 优化了 `AMQPConnection` 的代码,以支持最新版本的 `php-amqplib` 组件。 - Network accessline 532
- [#5528](https://github.com/hyperf/hyperf/pull/5528) 优化了 `aspects` 的配置,对热重启有更好的支持。 - Network accessline 533
- [#5541](https://github.com/hyperf/hyperf/pull/5541) 提升了 `FactoryResolver` 基于 `XXXFactory` 实例化对象的能力,增加了可选参数配置。 - Network accessline 539
- [#5499](https://github.com/hyperf/hyperf/pull/5499) 为 `hyperf/constants` 组件增加枚举(>=PHP8.1)类型支持。 - Network accessline 540
- [#5508](https://github.com/hyperf/hyperf/pull/5508) 新增方法 `Hyperf\Rpc\Protocol::getNormalizer`。 - Network accessline 541
- [#5509](https://github.com/hyperf/hyperf/pull/5509) 为 `json-rpc` 组件自动注册 `normalizer`。 - Network accessline 542
- [#5513](https://github.com/hyperf/hyperf/pull/5513) 组件 `rpc-multiplex` 使用默认的 `normalizer` 并对 `rpc-server` 增加自定义 `protocol.normalizer` 的支持。 - Network accessline 543
- [#5518](https://github.com/hyperf/hyperf/pull/5518) 增加方法 `SwooleConnection::getSocket` 用来获取 `Swoole` 的 `Response`。 - Network accessline 544
- [#5520](https://github.com/hyperf/hyperf/pull/5520) 新增方法 `Coroutine::stats()` 和 `Coroutine::exists()`。 - Network accessline 545
- [#5525](https://github.com/hyperf/hyperf/pull/5525) 新增配置 `kafka.default.consume_timeout` 用来控制消费者消费数据的超时时间。 - Network accessline 546
- [#5526](https://github.com/hyperf/hyperf/pull/5526) 新增方法 `Hyperf\Kafka\AbstractConsumer::isEnable()` 用来控制 `kafka` 消费者是否启动。 - Network accessline 550
- [#5519](https://github.com/hyperf/hyperf/pull/5519) 修复因 `kafka` 生产者 `loop` 方法导致进程无法正常退出的问题。 - Network accessline 551
- [#5523](https://github.com/hyperf/hyperf/pull/5523) 修复在发生 `kafka rebalance` 的时候,进程无故停止的问题。 - Network accessline 555
- [#5510](https://github.com/hyperf/hyperf/pull/5510) 允许开发者自定义 `RPC 客户端` 的 `normalizer` 的实现。 - Network accessline 556
- [#5525](https://github.com/hyperf/hyperf/pull/5525) 当消费 `kafka` 消息时,每个消息会在独立的协程中进行处理。 - Network accessline 562
- [#5497](https://github.com/hyperf/hyperf/pull/5497) 修复 `apollo` 配置中心,无法正常触发 `ConfigChanged` 事件的问题。 - Network accessline 566
- [#5491](https://github.com/hyperf/hyperf/pull/5491) 为 `Str` 和 `Stringable` 新增 `charAt` 方法。 - Network accessline 567
- [#5503](https://github.com/hyperf/hyperf/pull/5503) 新增 `Hyperf\Contract\JsonDeSerializable`。 - Network accessline 568
- [#5504](https://github.com/hyperf/hyperf/pull/5504) 新增 `Hyperf\Utils\Serializer\JsonDeNormalizer`。 - Network accessline 572
- [#5493](https://github.com/hyperf/hyperf/pull/5493) 优化 `Nacos` 服务注册器的代码,使其支持 `1.x` 和 `2.x` 版本。 - [#5494](https://github.com/hyperf/hyperf/pull/5494) [#5501](https://github.com/hyperf/hyperf/pull/5501) 优化 `hyperf/guzzle` 组件,当使用 `Swoole` 且不 - Network accessline 573
- [#5494](https://github.com/hyperf/hyperf/pull/5494) [#5501](https://github.com/hyperf/hyperf/pull/5501) 优化 `hyperf/guzzle` 组件,当使用 `Swoole` 且不支持 `native-curl` 时,才会默认替换 `Handler`。 - Network accessline 577
- [#5492](https://github.com/hyperf/hyperf/pull/5492) 将 `Hyperf\DbConnection\Listener\CreatingListener` 重命名为 `Hyperf\DbConnection\Listener\InitUidOnCreatingListener`. - Network accessline 583
- [#5467](https://github.com/hyperf/hyperf/pull/5467) 为 `GRPC` 增加 `Google\Rpc\Status` 的支持。 - Network accessline 584
- [#5472](https://github.com/hyperf/hyperf/pull/5472) 为模型增加 `ulid` 和 `uuid` 的支持。 - Network accessline 585
- [#5476](https://github.com/hyperf/hyperf/pull/5476) 为 `Stringable` 增加 `ArrayAccess` 的支持。 - Network accessline 586
- [#5478](https://github.com/hyperf/hyperf/pull/5478) 为 `Stringable` 和 `Str` 增加 `isMatch` 方法。 - Network accessline 590
- [#5469](https://github.com/hyperf/hyperf/pull/5469) 当数据库连接出现问题时,确保连接在归还到连接池前被重置。 - Network accessline 596
- [#5433](https://github.com/hyperf/hyperf/pull/5433) [#5438](https://github.com/hyperf/hyperf/pull/5438) 修复 `Nacos` 临时实例,不需要发送心跳的问题。 - Network accessline 597
- [#5464](https://github.com/hyperf/hyperf/pull/5464) 修复 `Swagger` 服务无法在异步风格中,正常启动的问题。 - Network accessline 601
- [#5434](https://github.com/hyperf/hyperf/pull/5434) 为 `Swow` 增加 `UDP` 服务的支持。 - Network accessline 602
- [#5444](https://github.com/hyperf/hyperf/pull/5444) 新增脚本 `GenSchemaCommand` 用来生成 `Swagger Schema`。 - Network accessline 603
- [#5451](https://github.com/hyperf/hyperf/pull/5451) 为模型集合新增 `appends($attributes)` 方法。 - Network accessline 604
- [#5453](https://github.com/hyperf/hyperf/pull/5453) 为测试组件增加 `put()` 和 `patch()` 方法。 - Network accessline 605
- [#5454](https://github.com/hyperf/hyperf/pull/5454) 为 `GRPC` 组件新增方法 `Hyperf\Grpc\Parser::statusFromResponse`。 - Network accessline 606
- [#5459](https://github.com/hyperf/hyperf/pull/5459) 为 `Str` 和 `Stringable` 新增方法 `uuid` 和 `ulid`。 - Network accessline 610
- [#5437](https://github.com/hyperf/hyperf/pull/5437) 为 `Str::length` 移除了没用的 `if` 判断。 - Network accessline 611
- [#5439](https://github.com/hyperf/hyperf/pull/5439) 优化了 `Arr::shuffle` 的代码。 - Network accessline 617
- [#5042](https://github.com/hyperf/hyperf/pull/5402) 为 `Swagger` 组件增加配置 `swagger.scan.paths` 可以用来重写默认的扫描目录。 - Network accessline 618
- [#5403](https://github.com/hyperf/hyperf/pull/5403) 为 `Swow` 增加 `Swoole Server` 配置项的适配。 - Network accessline 619
- [#5404](https://github.com/hyperf/hyperf/pull/5404) 为 `Swagger` 增加多端口服务的支持。 - Network accessline 620
- [#5406](https://github.com/hyperf/hyperf/pull/5406) 为 `Hyperf\Database\Model\Builder` 增加 `mixin` 方法。 - Network accessline 621
- [#5407](https://github.com/hyperf/hyperf/pull/5407) 为 `Swagger` 增加请求方法 `Delete` 和 `Options` 的支持。 - Network accessline 622
- [#5409](https://github.com/hyperf/hyperf/pull/5409) 为数据库组件中 `Query\Builder` 和 `Paginator` 类增加了一部分方法。 - Network accessline 623
- [#5414](https://github.com/hyperf/hyperf/pull/5414) 为 `Hyperf\Database\Model\Builder` 增加了 `clone` 方法。 - Network accessline 624
- [#5418](https://github.com/hyperf/hyperf/pull/5418) 为配置中心增加了 `ConfigChanged` 事件。 - Network accessline 625
- [#5429](https://github.com/hyperf/hyperf/pull/5429) 在连接 `Aliyun Nacos` 服务时,增加了配置项 `access_key` 和 `access_secret`。 - Network accessline 629
- [#5405](https://github.com/hyperf/hyperf/pull/5405) 修复了当系统支持 `IPv6` 时,`get local ip` 无法正常读取 ip 的问题。 - Network accessline 630
- [#5417](https://github.com/hyperf/hyperf/pull/5417) 修复 `PgSQL` 无法正常使用数据库迁移功能的问题。 - Network accessline 631
- [#5421](https://github.com/hyperf/hyperf/pull/5421) 修复数据库 `Json` 结构无法正常使用 `boolean` 类型的问题。 - Network accessline 632
- [#5428](https://github.com/hyperf/hyperf/pull/5428) 修复 `Metric` 中间件遇到异常时,服务端参数统计有误的问题。 - Network accessline 633
- [#5424](https://github.com/hyperf/hyperf/pull/5424) 修复数据库迁移组件,不支持 `PHP8.2` 的问题。 - Network accessline 637
- [#5411](https://github.com/hyperf/hyperf/pull/5411) 优化代码,异常 `WebSocketHandeShakeException` 应继承 `BadRequestHttpException`。 - Network accessline 638
- [#5419](https://github.com/hyperf/hyperf/pull/5419) 优化 `RPN` 组件的实现逻辑,可以更好的进行自定义扩展。 - Network accessline 639
- [#5422](https://github.com/hyperf/hyperf/pull/5422) 当安装 `Swagger` 组件后,默认启动 `Swagger` 的能力。 - Network accessline 645
- [#5361](https://github.com/hyperf/hyperf/pull/5361) 修复 `Nacos` 注入临时实例失败的问题。 - Network accessline 646
- [#5382](https://github.com/hyperf/hyperf/pull/5382) 修复 `SocketIO` 中使用 `mix-subscriber` 时,因为没有设置密码而报错的问题。 - Network accessline 647
- [#5386](https://github.com/hyperf/hyperf/pull/5386) 修复 `SwoolePostgresqlClient` 会被执行到不存在的方法 `exec` 的问题。 - Network accessline 648
- [#5394](https://github.com/hyperf/hyperf/pull/5394) 修复 `hyperf/config-apollo` 无法正常使用的问题。 - Network accessline 652
- [#5366](https://github.com/hyperf/hyperf/pull/5366) 为 `hyperf/database` 增加 `forceDeleting` 事件。 - Network accessline 653
- [#5373](https://github.com/hyperf/hyperf/pull/5373) 为 `SwowServer` 增加 `settings` 配置。 - Network accessline 654
- [#5376](https://github.com/hyperf/hyperf/pull/5376) 为 `hyperf/metric` 增加协程风格下服务状态收集的能力。 - Network accessline 655
- [#5379](https://github.com/hyperf/hyperf/pull/5379) 当 `Nacos` 心跳失败时,增加日志记录。 - Network accessline 656
- [#5389](https://github.com/hyperf/hyperf/pull/5389) 增加 `Swagger` 支持。 - Network accessline 657
- [#5395](https://github.com/hyperf/hyperf/pull/5395) 为 `Swagger` 组件,增加验证器功能。 - Network accessline 658
- [#5397](https://github.com/hyperf/hyperf/pull/5397) 支持所有已知的 `Swagger` 注解。 - Network accessline 664
- [#5338](https://github.com/hyperf/hyperf/pull/5338) 为 `SoftDeletingScope` 新增了 `addRestoreOrCreate` 方法。 - Network accessline 665
- [#5349](https://github.com/hyperf/hyperf/pull/5349) 新增监听器 `ResumeExitCoordinatorListener`。 - Network accessline 666
- [#5355](https://github.com/hyperf/hyperf/pull/5355) 新增方法 `System::getCpuCoresNum()`。 - Network accessline 670
- [#5357](https://github.com/hyperf/hyperf/pull/5357) 修复在匿名函数中抛错时,`coordinator` 定时器无法正常停止的问题。 - Network accessline 674
- [#5342](https://github.com/hyperf/hyperf/pull/5342) 优化了 `Redis` 哨兵模式的地址读取方式。 - Network accessline 680
- [#5332](https://github.com/hyperf/hyperf/pull/5332) 修复了 `PgSQLSwooleConnection::unprepared` 无法正常使用的问题。 - Network accessline 681
- [#5333](https://github.com/hyperf/hyperf/pull/5333) 修复数据库组件在闲置时间过长,连接断开导致数据库读写报错的问题。 - Network accessline 687
- [#5318](https://github.com/hyperf/hyperf/pull/5318) 修复在使用 PHP 8.1 版本时,限流器无法使用的问题。 - Network accessline 688
- [#5324](https://github.com/hyperf/hyperf/pull/5324) 修复 MySQL 连接断开时,数据库组件无法使用的问题。 - Network accessline 689
- [#5322](https://github.com/hyperf/hyperf/pull/5322) 修复 Kafka 消费者在没有设置 `memberId` 等参数时,无法使用的问题。 - Network accessline 690
- [#5327](https://github.com/hyperf/hyperf/pull/5327) 修复 PgSQL 在创建连接失败时,导致类型错误的问题。 - Network accessline 694
- [#5314](https://github.com/hyperf/hyperf/pull/5314) 新增方法 `Hyperf\Coordinator\Timer::stats()`. - Network accessline 695
- [#5323](https://github.com/hyperf/hyperf/pull/5323) 新增方法 `Hyperf\Nacos\Provider\ConfigProvider::listener()`. - Network accessline 699
- [#5308](https://github.com/hyperf/hyperf/pull/5308) [#5309](https://github.com/hyperf/hyperf/pull/5309) [#5310](https://github.com/hyperf/hyperf/pull/5310) [#5311](https://github.com/hyperf/hyperf/pull/5311) 为 `hyperf/metric` 增加协程服务的支持。 - Network accessline 700
- [#5315](https://github.com/hyperf/hyperf/pull/5315) 增加 `hyperf/metric` 组件的监控指标。 - Network accessline 701
- [#5326](https://github.com/hyperf/hyperf/pull/5326) 在循环中,收集服务当前的状态。 - Network accessline 707
- [#5305](https://github.com/hyperf/hyperf/pull/5305) 使用 `PolarDB` 读写分离时,修复因没有修改数据的情况下,提交事务会导致此链接存在异常,但又被回收进连接池的问题。 - Network accessline 708
- [#5307](https://github.com/hyperf/hyperf/pull/5307) 修复 `hyperf/metric` 组件中,`Timer::tick()` 的 `$timeout` 参数设置错误的问题。 - Network accessline 712
- [#5306](https://github.com/hyperf/hyperf/pull/5306) 当连接池回收连接失败时,记录日志。 - Network accessline 718
- [#5289](https://github.com/hyperf/hyperf/pull/5289) 修复使用 `Swow` 引擎时,`Signal` 组件无法使用的问题。 - Network accessline 719
- [#5303](https://github.com/hyperf/hyperf/pull/5303) 修复 `SocketIO` 的 `Redis NSQ 适配器`,当首次使用,`topics` 为 `null` 时,无法正常工作的问题。 - Network accessline 723
- [#5287](https://github.com/hyperf/hyperf/pull/5287) 当服务端响应数据时,如果出现异常,则记录对应日志。 - Network accessline 724
- [#5292](https://github.com/hyperf/hyperf/pull/5292) 为组件 `hyperf/metric` 增加 `Swow` 引擎的支持。 - Network accessline 725
- [#5301](https://github.com/hyperf/hyperf/pull/5301) 优化 `Hyperf\Rpc\PathGenerator\PathGenerator` 的代码实现。 - Network accessline 729
- [#4238](https://github.com/hyperf/hyperf/issues/4238) 更新所有组件 PHP 最低版本到 8.0 - Network accessline 730
- [#5087](https://github.com/hyperf/hyperf/pull/5087) 支持 PHP 8.2
skills/hyperf/references/zh-cn/changelog/3.1.md
- Network accessline 7
- [#7459](https://github.com/hyperf/hyperf/pull/7459) 使用验证器规则 `exists` 和 `unique` 时,支持使用形如 `App\\Model\\User` 的模型写法。 - Network accessline 8
- [#7555](https://github.com/hyperf/hyperf/pull/7555) 新增 `Hyperf\Crontab\Mutex\RedisServerMutexByNodeName`。 - Network accessline 9
- [#7607](https://github.com/hyperf/hyperf/pull/7607) 为 `hyperf/database` 增加新的模型自定义类型转换器 `AsCollection`。 - Network accessline 10
- [#7648](https://github.com/hyperf/hyperf/pull/7648) 为 `nacos` 支持阿里云 `mse` 签名。 - Network accessline 14
- [#7676](https://github.com/hyperf/hyperf/pull/7676) 优化 `hyperf/tracer` 组件的客户端标签写法。 - Network accessline 18
- [#7703](https://github.com/hyperf/hyperf/pull/7703) 修复 `hyperf/cache` 内存适配器不支持默认 `ttl` 的问题。 - Network accessline 19
- [#7705](https://github.com/hyperf/hyperf/pull/7705) 修复 `Hyperf\Database\Query\Builder::eachById` 无法正常使用的问题。 - Network accessline 20
- [#7712](https://github.com/hyperf/hyperf/pull/7712) 修复 `classes` 等扫描缓存解析失败导致报错的问题。 - Network accessline 26
- [#7667](https://github.com/hyperf/hyperf/pull/7667) [#7672](https://github.com/hyperf/hyperf/pull/7672) 为 `hyperf/grpc-client` 新增参数 `client_count` 用来支持创建多个客户端。 - Network accessline 27
- [#7668](https://github.com/hyperf/hyperf/pull/7668) 为 `Hyperf\Guzzle\PoolHandler` 新增参数 `$isCookiePersistent` 用来支持是否持久化 `Cookies`。 - Network accessline 28
- [#7670](https://github.com/hyperf/hyperf/pull/7670) 为文件生成命令增加 `--path` 选项,用来指定生成位置。 - Network accessline 29
- [#7684](https://github.com/hyperf/hyperf/pull/7684) 新增方法 `Hyperf\Database\Schema\Builder::withoutForeignKeyConstraints()`。 - Network accessline 30
- [#7693](https://github.com/hyperf/hyperf/pull/7693) 为 `ForeignKeyDefinition` 新增方法 `cascadeOnDelete()`, `restrictOnDelete()`, `noActionOnDelete()`, `restrictOnUpdate()`, `nullOnUpdate()`, `noActionOnUpdate()`。 - Network accessline 31
- [#7698](https://github.com/hyperf/hyperf/pull/7698) 新增方法 `Pool::flushAll()` 和 `PoolFactory::flushAll()`。 - Network accessline 32
- [#7699](https://github.com/hyperf/hyperf/pull/7699) 为 `QueryBuilder` 新增方法 `whereJsonContainsKey()`, `orWhereJsonContainsKey()`, `whereJsonDoesntContainKey()`, `orWhereJsonDoesntContainKey()`。 - Network accessline 36
- [#7675](https://github.com/hyperf/hyperf/pull/7675) 为 `metric` 组件删除多余的定时器清理代码。 - Network accessline 37
- [#7687](https://github.com/hyperf/hyperf/pull/7687) 为 `JSON-RPC` 组件增加默认捕获 `ValidationException` 的逻辑。 - Network accessline 41
- [#7669](https://github.com/hyperf/hyperf/pull/7669) 修复 `PostgreSQL` 组件中 `boolean` 格式问题。 - Network accessline 42
- [#7682](https://github.com/hyperf/hyperf/pull/7682) 修复 `Blueprint::foreign()` 返回值注释错误。 - Network accessline 48
- [#7585](https://github.com/hyperf/hyperf/pull/7585) 新增事件 `Hyperf\Kafka\Event\FailToAck` 和 `Hyperf\Kafka\Event\FailToRequeue`。 - Network accessline 49
- [#7632](https://github.com/hyperf/hyperf/pull/7632) 增加 `thecodingmachine/graphqlite:^8.1` 的支持。 - Network accessline 50
- [#7644](https://github.com/hyperf/hyperf/pull/7644) 新增 `Str::uuidv7()`。 - Network accessline 54
- [#7649](https://github.com/hyperf/hyperf/pull/7649) 为 `Hyperf\Metric\Listener\OnBeforeHandle` 移除 `AfterExecute` 的事件监听。 - Network accessline 60
- [#7600](https://github.com/hyperf/hyperf/pull/7600) 新增方法 `Hyperf\Collection\Arr::sole()`。 - Network accessline 61
- [#7601](https://github.com/hyperf/hyperf/pull/7601) 增加异步队列消息执行结果枚举 `Hyperf\AsyncQueue\Result`。 - Network accessline 65
- [#7604](https://github.com/hyperf/hyperf/pull/7604) 优化异步队列 `AsyncQueueMessage` 注解支持定义在 `protected` 和 `private` 方法上。 - Network accessline 66
- [#7611](https://github.com/hyperf/hyperf/pull/7611) 为 `Console::command()` 增加注释 `@param-closure-this`,用来获得更好的 `ide` 代码提示。 - Network accessline 67
- [#7615](https://github.com/hyperf/hyperf/pull/7615) 把异步队列的消费者进程中的 `$queue` 参数重命名为 `$pool`。 - Network accessline 71
- [#7596](https://github.com/hyperf/hyperf/pull/7596) 修复使用验证器时,使用了不存在的场景值,导致报错的问题。 - Network accessline 77
- [#7536](https://github.com/hyperf/hyperf/pull/7536) 修复 `Hyperf\Validation\ValidationRuleParser::parseParameters()` 不支持 `PHP 8.4` 的问题。 - Network accessline 78
- [#7543](https://github.com/hyperf/hyperf/pull/7543) 修复 `nacos` 组件代码没有严格符合 `psr4` 标准的问题。 - Network accessline 79
- [#7554](https://github.com/hyperf/hyperf/pull/7554) 修复参数 `Redis` 集群 `context` 参数在没有设置密码时,不生效的问题。 - Network accessline 80
- [#7561](https://github.com/hyperf/hyperf/pull/7561) 重置 `Nacos\Application` 的构造函数参数名。 - Network accessline 84
- [#7553](https://github.com/hyperf/hyperf/pull/7553) 对 `hyperf/testing` 组件增加 `PATCH` 方法的支持。 - Network accessline 88
- [#7511](https://github.com/hyperf/hyperf/pull/7511) 优化 `hyperf/database` 的注释。 - Network accessline 89
- [#7537](https://github.com/hyperf/hyperf/pull/7537) 对 `swagger` 组件,使用 `priorityMiddleware` 替代 `middleware`。 - Network accessline 95
- [#7469](https://github.com/hyperf/hyperf/pull/7469) 使用参数验证器时,支持通过场景值覆写参数验证规则。 - Network accessline 96
- [#7531](https://github.com/hyperf/hyperf/pull/7531) 为脚本 `migrate:rollback` 新增参数 `batch`。 - Network accessline 97
- [#7545](https://github.com/hyperf/hyperf/pull/7545) 运行脚本最后自动执行 `CoordinatorManager::until(Constants::WORKER_EXIT)->resume();`。 - Network accessline 101
- [#7547](https://github.com/hyperf/hyperf/pull/7547) 修复 `kafka` 消费者配置成员变量 `$pool` 时,无法正常使用的问题。 - Network accessline 107
- [#7467](https://github.com/hyperf/hyperf/pull/7467) 为 Nacos SDK 支持 v2 和 v3 版本。 - Network accessline 108
- [#7476](https://github.com/hyperf/hyperf/pull/7476) 为 `Hyperf\Support\Fluent` 新增 trait `InteractsWithData` 支持。 - Network accessline 109
- [#7480](https://github.com/hyperf/hyperf/pull/7480) 新增方法 `Hyperf\Database\Model\Builder::incrementOrCreate()`。 - Network accessline 110
- [#7481](https://github.com/hyperf/hyperf/pull/7481) 新增方法 `Collection::doesntContainStrict()` 和 `LazyCollection::doesntContainStrict()`。 - Network accessline 111
- [#7483](https://github.com/hyperf/hyperf/pull/7483) 新增 `Hyperf\Database\Model\Relations\BelongsTo::dissociate()` 的别名 `disassociate()`。 - Network accessline 112
- [#7484](https://github.com/hyperf/hyperf/pull/7484) 新增方法 `Hyperf\Database\Model\Model::isSoftDeletable()`。 - Network accessline 113
- [#7486](https://github.com/hyperf/hyperf/pull/7486) 新增方法 `Hyperf\Database\Model\Builder::except()`。 - Network accessline 114
- [#7487](https://github.com/hyperf/hyperf/pull/7487) 新增模型对 `ArrayObject` 类型的转换器 `Hyperf\Database\Model\Casts\AsArrayObject`。 - Network accessline 115
- [#7492](https://github.com/hyperf/hyperf/pull/7492) 为 `Hyperf\Pipeline\Pipeline` 新增 trait `Macroable` 的支持。 - Network accessline 116
- [#7499](https://github.com/hyperf/hyperf/pull/7499) 新增常量 `Hyperf\Kafka\Constants\KafkaStrategy::STICKY_ASSIGNOR`。 - Network accessline 117
- [#7500](https://github.com/hyperf/hyperf/pull/7500) 新增方法 `Hyperf\Collection\Arr::push()` 和 `Hyperf\Collection\Arr::array()`。 - Network accessline 118
- [#7502](https://github.com/hyperf/hyperf/pull/7502) 新增方法 `Hyperf\Collection\Arr::hasAll()`。 - Network accessline 119
- [#7509](https://github.com/hyperf/hyperf/pull/7509) 新增 `Hyperf\Codec\Packer\Resp3Packer`。 - Network accessline 120
- [#7518](https://github.com/hyperf/hyperf/pull/7518) 新增方法 `Hyperf\Database\Query\Grammars\Grammar::whereValueBetween()`。 - Network accessline 124
- [#7501](https://github.com/hyperf/hyperf/pull/7501) 为 `Hyperf\Macroable\Macroable::macro()` 增加引用验证,避免使用引用导致代码执行结果不达预期的情况。 - Network accessline 130
- [#7447](https://github.com/hyperf/hyperf/pull/7447) 修复 `migrate:fresh` 无法删除默认表的问题。 - Network accessline 131
- [#7449](https://github.com/hyperf/hyperf/pull/7449) 修复方法 `Hyperf\Database\Migrations\Migrator::reset()` 不支持传入 `string` 格式参数的问题。 - Network accessline 135
- [#7466](https://github.com/hyperf/hyperf/pull/7466) 为 `Hyperf\Support\Fluent` 新增方法 `isEmpty` / `isNotEmpty` / `getIterator`。 - Network accessline 136
- [#7473](https://github.com/hyperf/hyperf/pull/7473) 为 `kafka` 新增配置项 `produce_retry` 和 `producer_retry_sleep`。 - Network accessline 142
- [#7421](https://github.com/hyperf/hyperf/pull/7421) 修复当设置 `Cookies` 中某个值为 "" 时,无法正确删除此 `Cookie` 的问题。 - Network accessline 143
- [#7424](https://github.com/hyperf/hyperf/pull/7424) 修复使用 `watcher` 组件时,`php` 二进制文件路径带有空格会导致报错的问题。 - Network accessline 144
- [#7427](https://github.com/hyperf/hyperf/pull/7427) 修复验证器中 `exclude` 规则不可用的问题。 - Network accessline 148
- [#7394](https://github.com/hyperf/hyperf/pull/7394) 当使用 `Redis::transaction($callback)` 和 `Redis::transaction($callback)` 后,可以立即释放连接到连接池中。 - Network accessline 154
- [#7402](https://github.com/hyperf/hyperf/pull/7402) 修复使用 `pgsql-swoole` 数据库时,参数 `connect_timeout` 无法正常工作的问题。 - Network accessline 155
- [#7414](https://github.com/hyperf/hyperf/pull/7414) 修复 `sqlite` 数据库迁移无法正常使用的问题。 - Network accessline 156
- [#7420](https://github.com/hyperf/hyperf/pull/7420) 修复使用模型缓存时,`luasha` 会在 `Redis` 重启时发生故障的问题。 - Network accessline 160
- [#7411](https://github.com/hyperf/hyperf/pull/7411) 移除 `Hyperf\Utils` 组件。 - Network accessline 166
- [#7400](https://github.com/hyperf/hyperf/pull/7400) 使用 `pgsql` 时,修复 `gen:model` 脚本无法正常使用的问题。 - Network accessline 167
- [#7410](https://github.com/hyperf/hyperf/pull/7410) 修复使用缓存模块时,内存适配器不支持 `setMultiple` 方法的问题。 - Network accessline 171
- [#7392](https://github.com/hyperf/hyperf/pull/7392) 为 `AsCommand` 和 `ClosureCommand` 增加 `coroutine` 选项。 - Network accessline 172
- [#7404](https://github.com/hyperf/hyperf/pull/7404) 为 `CacheAHead` 注解增加 `runAsync` 参数,用来异步初始化缓存操作,但会导致返回值为 `Null`。 - Network accessline 178
- [#7365](https://github.com/hyperf/hyperf/pull/7365) 为 `logger` 配置文件,增加 `callable` 方式支持。 - Network accessline 179
- [#7381](https://github.com/hyperf/hyperf/pull/7381) 新增 `Hyperf\Database\PgSQL\Query\Grammars\PostgresGrammar\compileJsonOverlaps`。 - Network accessline 183
- [#7363](https://github.com/hyperf/hyperf/pull/7363) 修复 `Hyperf\HttpServer\Router\RouteCollector` 中代码注释,解决 `IDE` 错误误报。 - Network accessline 184
- [#7379](https://github.com/hyperf/hyperf/pull/7379) 修复使用 `PgSQL` 的 `Migrator` 功能时,`PDO` 适配器无法正常使用的问题。 - Network accessline 190
- [#7316](https://github.com/hyperf/hyperf/pull/7316) 为 `hyperf/resource` 组件增加支持重写 `paginationInformation` 方法的接口。 - Network accessline 191
- [#7343](https://github.com/hyperf/hyperf/pull/7343) 新增 `Hyperf\Coroutine\Barrier`。 - Network accessline 195
- [#7328](https://github.com/hyperf/hyperf/pull/7328) 修复使用 `Blueprint` 建表时,主动配置主键导致报错的问题。 - Network accessline 196
- [#7334](https://github.com/hyperf/hyperf/pull/7334) 修复 `kafka` 消息生产者,在链接断开后无法重连的问题。 - Network accessline 202
- [#7309](https://github.com/hyperf/hyperf/pull/7309) 修复 `Hyperf\Testing\Client` 在使用非 `POST` 请求时,不支持 `Json` 结构的问题。 - Network accessline 203
- [#7318](https://github.com/hyperf/hyperf/pull/7318) 修复 `WebSocket` 客户端不支持接收 `CloseFrame` 的问题。 - Network accessline 204
- [#7329](https://github.com/hyperf/hyperf/pull/7329) 修复创建模型时,`$connection` 类型报错的问题。 - Network accessline 208
- [#7311](https://github.com/hyperf/hyperf/pull/7311) 新增 `Hyperf\Redis\Event\CommandExecuted::getFormatCommand()`。 - Network accessline 209
- [#7313](https://github.com/hyperf/hyperf/pull/7313) 新增验证器规则 `contains`, `extensions` and `hex_color`。 - Network accessline 210
- [#7314](https://github.com/hyperf/hyperf/pull/7314) 增加 `hyperf/db` 组件中 `pgsql` 引擎的 `schema` 配置。 - Network accessline 211
- [#7325](https://github.com/hyperf/hyperf/pull/7325) 为 `Hyperf\Di\ReflectionType` 增加注解元数据。 - Network accessline 212
- [#7332](https://github.com/hyperf/hyperf/pull/7332) 新增方法 `Hyperf\Memory\LockManager::exists()`。 - Network accessline 218
- [#7200](https://github.com/hyperf/hyperf/pull/7200) 新增方法 `Hyperf\Database\Connection::scalar()` 用于读取满足查询条件的第一行数据的第一个字段值。 - Network accessline 219
- [#7279](https://github.com/hyperf/hyperf/pull/7279) 为 `gen:model` 增加解析 `trait` 中的 `Relation` 和 `Attribute` 的功能。 - Network accessline 220
- [#7286](https://github.com/hyperf/hyperf/pull/7286) 新增方法 `Hyperf\Coroutine\Coroutine::list()`。 - Network accessline 221
- [#7291](https://github.com/hyperf/hyperf/pull/7291) 当使用 `Model::createOrFirst` 读到 `null` 值时,抛出异常。 - Network accessline 227
- [#7250](https://github.com/hyperf/hyperf/pull/7250) 新增 `Hyperf\AsyncQueue\Driver\Driver::getConfig()`。 - Network accessline 228
- [#7255](https://github.com/hyperf/hyperf/pull/7255) 为 `Hyperf\Database\Model\Builder` 新增 `createOrFirst()` 和 `createOrRestore()`。 - Network accessline 229
- [#7259](https://github.com/hyperf/hyperf/pull/7259) 为 `Hyperf\Database\Query\Builder` 新增 `existsOr` 和 `doesntExistOr`。 - Network accessline 230
- [#7260](https://github.com/hyperf/hyperf/pull/7260) 新增 `Hyperf\Database\Query\Builder::sole()`。 - Network accessline 231
- [#7261](https://github.com/hyperf/hyperf/pull/7261) 新增 `Hyperf\Database\Model\Model::discardChanges()`。 - Network accessline 232
- [#7262](https://github.com/hyperf/hyperf/pull/7262) 新增 `Hyperf\Database\Model\Model::hasAppended()`。 - Network accessline 233
- [#7263](https://github.com/hyperf/hyperf/pull/7263) 新增 `Hyperf\Coroutine\WaitConcurrent`。 - Network accessline 234
- [#7265](https://github.com/hyperf/hyperf/pull/7265) 新增 `Hyperf\Command\Concerns\Prohibitable`。 - Network accessline 235
- [#7269](https://github.com/hyperf/hyperf/pull/7269) 新增 `Hyperf\Redis\Event\CommandExecuted`。 - Network accessline 236
- [#7273](https://github.com/hyperf/hyperf/pull/7273) 使用命令创建文件后,支持使用 `cursor` 编辑器自动打开对应文件。 - Network accessline 240
- [#7258](https://github.com/hyperf/hyperf/pull/7258) 优化读取 `composer.lock` 的代码实现。 - Network accessline 241
- [#7276](https://github.com/hyperf/hyperf/pull/7276) 使用 `static::class` 代替 `get_called_class`。 - Network accessline 247
- [#7231](https://github.com/hyperf/hyperf/pull/7231) 修复使用 `WebSocket` 时,错误的 `OnMessage` 处理器导致致命异常的问题。 - Network accessline 251
- [#7224](https://github.com/hyperf/hyperf/pull/7224) 新增 `Hyperf\Coroutine\Mutex`。 - Network accessline 252
- [#7233](https://github.com/hyperf/hyperf/pull/7233) 为 `AMQP` 组件增加新配置项 `connection_name` 用于自定义连接名称。 - Network accessline 256
- [#7223](https://github.com/hyperf/hyperf/pull/7223) 优化从 `composer.lock` 读取 `extra` 数据的代码。 - Network accessline 257
- [#7227](https://github.com/hyperf/hyperf/pull/7227) 优化 `Hyperf\Support\SafeCaller` 的代码,适配 `PHPStan` 静态检测。 - Network accessline 263
- [#7206](https://github.com/hyperf/hyperf/pull/7206) 支持 `Swoole` 6.0 版本。 - Network accessline 264
- [#7209](https://github.com/hyperf/hyperf/pull/7209) 优化 `AbstractPaginator::getUrlRange()` 的实现方式。 - Network accessline 270
- [#7194](https://github.com/hyperf/hyperf/pull/7194) 当数据库更新触发唯一键错误时,抛出异常 `UniqueConstraintViolationException`. - Network accessline 271
- [#7187](https://github.com/hyperf/hyperf/pull/7187) 当使用单元测试时,支持从 `Request` 中读取 `Server` 相关参数。 - Network accessline 275
- [#7188](https://github.com/hyperf/hyperf/pull/7188) 修复 `Hyperf\HttpMessage\Server\ResponsePlusProxy` 无法支持其他不携带 `getCookies` 方法的 `Response` 实现类。 - Network accessline 279
- [#7192](https://github.com/hyperf/hyperf/pull/7192) 新增方法 `Hyperf\Database\Model\Collection::findOrFail()`. - Network accessline 285
- [#7176](https://github.com/hyperf/hyperf/pull/7176) 修复使用 `Swow` 时,无法正常设置 `Cookies` 的问题。 - Network accessline 291
- [#7148](https://github.com/hyperf/hyperf/pull/7148) 为 `hyperf/validation` 增加 `exclude` 验证规则。 - Network accessline 292
- [#7150](https://github.com/hyperf/hyperf/pull/7150) 为 `hyperf/validation` 增加部分验证规则,例如 `accepted_if`, `ascii`, `date_equals` 等。 - Network accessline 293
- [#7151](https://github.com/hyperf/hyperf/pull/7151) 为 `Hyperf\Testing\Concerns\RunTestsInCoroutine::runTestsInCoroutine()` 增加钩子方法 `beforeTestInCoroutine` 和 `afterTestInCoroutine`。 - Network accessline 294
- [#7156](https://github.com/hyperf/hyperf/pull/7156) 新增方法 `Hyperf\Database\Schema\Blueprint::engine()`。 - Network accessline 300
- [#7141](https://github.com/hyperf/hyperf/pull/7141) 新增方法 `Hyperf\Collection\Arr::shuffleAssoc`。 - Network accessline 301
- [#7143](https://github.com/hyperf/hyperf/pull/7143) 新增方法 `Hyperf\Database\Model\Builder::findOr`。 - Network accessline 302
- [#7147](https://github.com/hyperf/hyperf/pull/7147) 为 `Model\Collection` 增加方法 `setVisible` 和 `setHidden`。 - Network accessline 303
- [#7149](https://github.com/hyperf/hyperf/pull/7149) 为 `swagger` 组件增加在配置中设置 `servers` 和 `info` 的能力。 - Network accessline 307
- [#7133](https://github.com/hyperf/hyperf/pull/7133) 修复使用 `migration` 时,主动配置 `connection` 不生效的问题。 - Network accessline 313
- [#7063](https://github.com/hyperf/hyperf/pull/7063) 为 `Hyperf\Database\Schema\Blueprint` 新增 `nullableUuidMorphs` `uuidMorphs` 和 `nullableNumericMorphs`。 - Network accessline 314
- [#7070](https://github.com/hyperf/hyperf/pull/7070) 新增 `Blueprint::charset()` 和 `Blueprint::collation()`。 - Network accessline 315
- [#7071](https://github.com/hyperf/hyperf/pull/7071) 新增 `Hyperf\Database\Schema\Blueprint::tinyText()`。 - Network accessline 316
- [#7110](https://github.com/hyperf/hyperf/pull/7110) 支持禁用 `class morphs`。 - Network accessline 320
- [#7124](https://github.com/hyperf/hyperf/pull/7124) 修复 `sortByMany` 方法使用 `SORT_NATURAL` 时,因数据为 `Null` 导致报错的问题。 - Network accessline 326
- [#7068](https://github.com/hyperf/hyperf/pull/7068) 修复 `Str::trim` 不支持 `trim/ltrim/rtim` 默认规则 `\n\r\t\v` 的问题。 - Network accessline 327
- [#7109](https://github.com/hyperf/hyperf/pull/7109) 修复注解 `CacheAHead` 不能使用默认 `ttl` 的问题。 - Network accessline 331
- [#7082](https://github.com/hyperf/hyperf/pull/7082) 优化 `Hyperf\Database\Query\Grammars\Grammar::compileUpdate()` 的实现代码。 - Network accessline 332
- [#7084](https://github.com/hyperf/hyperf/pull/7084) 优化 `Hyperf\Watcher\Ast\RewriteClassNameVisitor::leaveNode()` 的实现代码。 - Network accessline 333
- [#7105](https://github.com/hyperf/hyperf/pull/7105) 使用 `watcher` 时,移除 `env_vars` 来保证子进程的环境变量与主进程一致。 - Network accessline 337
- [#7025](https://github.com/hyperf/hyperf/pull/7025) 新增方法 `Hyperf\Database\Model\Relations\Relation::getMorphAlias()`。 - Network accessline 343
- [#7081](https://github.com/hyperf/hyperf/pull/7081) 修复方法 `data_get` 不支持非 `string` 类型 `key` 值的问题。 - Network accessline 347
- [#7088](https://github.com/hyperf/hyperf/pull/7088) 优化了所有组件的 `Github Actions` 的使用方式。 - Network accessline 353
- [#7059](https://github.com/hyperf/hyperf/pull/7059) 新增方法 `Hyperf\Database\Schema\Schema::getForeignKeys()`。 - Network accessline 354
- [#7064](https://github.com/hyperf/hyperf/pull/7064) 为 `DoctrineConnection` 增加枚举类型支持。 - Network accessline 355
- [#7077](https://github.com/hyperf/hyperf/pull/7077) 新增方法 `ModelUpdateVisitor::getReturnType`。 - Network accessline 361
- [#7051](https://github.com/hyperf/hyperf/pull/7051) 修复使用 `migrate` 时,`--database` 选项不生效的问题。 - Network accessline 365
- [#7053](https://github.com/hyperf/hyperf/pull/7053) 将 `Str::is()` 中的 `$value` 和 `$pattern` 入参强制转化为 `string` 类型。 - Network accessline 371
- [#7034](https://github.com/hyperf/hyperf/pull/7034) 修复使用 `phar:build` 时,由于入口函数定义了 `declare` 导致打包后,运行失败的问题。 - Network accessline 372
- [#7043](https://github.com/hyperf/hyperf/pull/7043) 修复 `jsonrpc-http` 不支持 `swow` 的问题。 - Network accessline 376
- [#7033](https://github.com/hyperf/hyperf/pull/7033) 优化 `ConsoleLogger` 支持 `watcher` 组件。 - Network accessline 377
- [#7040](https://github.com/hyperf/hyperf/pull/7040) 优化 `phar:build` 脚本的打包速度。 - Network accessline 381
- [#7024](https://github.com/hyperf/hyperf/pull/7024) 为 `Hyperf\Database\Schema\Schema` 新增方法 `whenTableHasColumn` 和 `whenTableDoesntHaveColumn`。 - Network accessline 387
- [#7016](https://github.com/hyperf/hyperf/pull/7016) 新增 `QueryBuilder::reorder` 方法,用来重置排序规则。 - Network accessline 388
- [#7023](https://github.com/hyperf/hyperf/pull/7023) 新增 `Hyperf\Contract\CanBeEscapedWhenCastToString` 并修改了部分静态检测的错误。 - Network accessline 389
- [#7028](https://github.com/hyperf/hyperf/pull/7028) 新增 `Hyperf\Framework\Logger\ConsoleLogger`. - Network accessline 395
- [#7015](https://github.com/hyperf/hyperf/pull/7015) 为 `Hyperf\Database\Query\Builder` 新增方法 `whereNone` 和 `orWhereNone`。 - Network accessline 399
- [#6839](https://github.com/hyperf/hyperf/pull/6839) 使用 `匿名类` 避免 `Migration` 类重定义的问题。 - Network accessline 405
- [#6971](https://github.com/hyperf/hyperf/pull/6971) 为 `Cookie` 增加 `partitioned` 支持。 - Network accessline 406
- [#6990](https://github.com/hyperf/hyperf/pull/6990) 为 `Hyperf\Support\Traits\InteractsWithTime` 增加 `currentTimestampMs` 方法。 - Network accessline 407
- [#6998](https://github.com/hyperf/hyperf/pull/6998) 为注解 `#[AutoController]` 新增 `defaultMethods` 参数,你可以更加方便的设置 `Options` 方法,便于支持跨域中间件。 - Network accessline 413
- [#6987](https://github.com/hyperf/hyperf/pull/6987) 修复使用 `Swagger` 服务时,使用根路由会导致报错的问题。 - Network accessline 419
- [#6978](https://github.com/hyperf/hyperf/pull/6978) 为 `#[AsCommand]` 注解支持 `static` 方法调用。 - Network accessline 420
- [#6979](https://github.com/hyperf/hyperf/pull/6979) 新增命令 `queue:dynamic-reload`。 - Network accessline 426
- [#6962](https://github.com/hyperf/hyperf/pull/6962) 优化使用 `Command` 时,触发异常时的错误日志展示样式。 - Network accessline 427
- [#6963](https://github.com/hyperf/hyperf/pull/6963) 优化 `Model/JsonResource::toJson` 的代码逻辑。 - Network accessline 431
- [#6954](https://github.com/hyperf/hyperf/pull/6954) 修复 `MySQL Server` 在故障转移和读写主机交换的情况下,`MySQL 连接` 无法重新连接到服务器的问题。 - Network accessline 432
- [#6961](https://github.com/hyperf/hyperf/pull/6961) 修复 `websocket sender` 不支持 `Swow` 的问题。 - Network accessline 438
- [#6949](https://github.com/hyperf/hyperf/pull/6949) 修复因不存在 `.env` 导致热重启失败的问题。 - Network accessline 439
- [#6953](https://github.com/hyperf/hyperf/pull/6953) 修复 `socketio-server` 在 `Swow` 引擎下无法正常使用的问题。 - Network accessline 443
- [#6946](https://github.com/hyperf/hyperf/pull/6946) 删除 `watcher` 组件中的 `Swoole Atomic` 依赖。 - Network accessline 447
- [#6950](https://github.com/hyperf/hyperf/pull/6950) 为 `database` 组件增加位运算查询支持。 - Network accessline 453
- [#6936](https://github.com/hyperf/hyperf/pull/6936) Support to reload `.env` when using `hyperf/watcher`. - Network accessline 459
- [#6925](https://github.com/hyperf/hyperf/pull/6925) 修复 `Collection::sortByMany()` 在新版本会重置索引导致 BC 的问题,但在 v3.2 版本中,将会把 `sortByMany()` 返回结果与 `sortBy()` 一致,即不再会重置索引。 - Network accessline 465
- [#6925](https://github.com/hyperf/hyperf/pull/6925) 修复方法 `sortByMany` 不支持排序规则的问题。 - Network accessline 469
- [#6896](https://github.com/hyperf/hyperf/pull/6896) 为 `hyperf/filesystem` 新增 `SftpAdapter` 适配器。 - Network accessline 470
- [#6917](https://github.com/hyperf/hyperf/pull/6917) 新增方法 `Str::chopStart` 和 `Str::chopEnd`。 - Network accessline 476
- [#6900](https://github.com/hyperf/hyperf/pull/6900) 修复 `LengthAwarePaginator::addQuery()` 不支持数组类型入参的问题。 - Network accessline 477
- [#6909](https://github.com/hyperf/hyperf/pull/6909) 修复 `Aop` 无法作用于 `Trait` 的问题。 - Network accessline 481
- [#6903](https://github.com/hyperf/hyperf/pull/6903) 优化 `config-nacos` 部分代码。 - Network accessline 485
- [#6885](https://github.com/hyperf/hyperf/pull/6885) 新增验证器规则 `prohibiti`。 - Network accessline 486
- [#6891](https://github.com/hyperf/hyperf/pull/6891) 为 `hyperf/cache` 组件增加配置项 `cache.*.options.pool` 用于主动选择使用哪个 `Redis` 实例。 - Network accessline 487
- [#6895](https://github.com/hyperf/hyperf/pull/6895) 增加收集枚举类中注解的能力。 - Network accessline 493
- [#6864](https://github.com/hyperf/hyperf/pull/6864) 为 `Hyperf\Database\Schema\Schema` 新增方法 `getViews` 和 `hasView`。 - Network accessline 494
- [#6866](https://github.com/hyperf/hyperf/pull/6866) 新增方法 `Hyperf\Database\Concerns\BuildsQueries::lazy`。 - Network accessline 495
- [#6869](https://github.com/hyperf/hyperf/pull/6869) 为 `Collection` 新增方法 `before` 和 `after`。 - Network accessline 496
- [#6876](https://github.com/hyperf/hyperf/pull/6876) 新增方法 `Hyperf\Database\Concerns\Builder::eachById`. - Network accessline 497
- [#6878](https://github.com/hyperf/hyperf/pull/6878) 为 `Hyperf\Database\Model\Concerns\QueriesRelationships` 新增 `whereMorphRelation` 和 `orWhereMorphRelation`。 - Network accessline 498
- [#6883](https://github.com/hyperf/hyperf/pull/6883) 为 `Hyperf\Database\Schema\Builder` 新增方法 `getIndexes` `hasIndex` 和 `getIndexListing`。 - Network accessline 499
- [#6884](https://github.com/hyperf/hyperf/pull/6884) 新增方法 `Hyperf\Database\Model\Model::updateOrFail`. - Network accessline 500
- [#6897](https://github.com/hyperf/hyperf/pull/6897) [#6899](https://github.com/hyperf/hyperf/pull/6899) 为 `Hyperf\Kafka\ConsumerManager` 新增事件 `BeforeLongLangConsumerCreated` 和 `AfterConsumerConfigCreated`。 - Network accessline 504
- [#6829](https://github.com/hyperf/hyperf/pull/6829) 优化 `Command` 的错误输出结构。 - Network accessline 505
- [#6868](https://github.com/hyperf/hyperf/pull/6868) 为 `QueryBuilder::orderBy()` 的 `$column` 参数增加类型 `Closure|Expression|ModelBuilder|static|string` 的支持。 - Network accessline 506
- [#6870](https://github.com/hyperf/hyperf/pull/6870) 统一 `Model Factory` 构造函数中的默认路径。 - Network accessline 507
- [#6874](https://github.com/hyperf/hyperf/pull/6874) 优化 `hyperf/watcher` 组件,使用 `Scanner` 代替硬编码。 - Network accessline 513
- [#6848](https://github.com/hyperf/hyperf/pull/6848) 修复 `LazyCollection::splitIn()` 因为类型限制导致报错的问题。 - Network accessline 517
- [#6845](https://github.com/hyperf/hyperf/pull/6845) 新增方法 `Hyperf\Database\Schema::getTables()`。 - Network accessline 518
- [#6846](https://github.com/hyperf/hyperf/pull/6846) 为 `Hyperf\Database\Concerns\BuildsQueries` 新增方法 `chunkById` 和 `chunkByIdDesc`。 - Network accessline 519
- [#6851](https://github.com/hyperf/hyperf/pull/6851) 为 `Hyperf\Database\Model\Concerns` 新增方法 `orDoesntHaveMorph` 和 `orHasMorph`。 - Network accessline 520
- [#6858](https://github.com/hyperf/hyperf/pull/6858) 为 `Hyperf\Database\Model\Concerns\HidesAttributes` 新增方法 `makeHiddenIf` 和 `makeVisibleIf`。 - Network accessline 524
- [#6855](https://github.com/hyperf/hyperf/pull/6855) 使用 `Conditionable` 优化 `BuildsQueries` 中的 `when` 和 `unless` 方法。 - Network accessline 525
- [#6856](https://github.com/hyperf/hyperf/pull/6856) 使用 `Conditionable` 优化 `Hyperf\Scout\Builder` 中的 `when` 和 `unless` 方法。 - Network accessline 526
- [#6860](https://github.com/hyperf/hyperf/pull/6860) 使用 `Hyperf\Collection\Enumerable` 代替 `Hyperf\ViewEngine\Contract\Enumerable`。 - Network accessline 532
- [#6837](https://github.com/hyperf/hyperf/pull/6837) 新增方法 `Model\Concerns\QueriesRelationships::withWhereHas()`。 - Network accessline 533
- [#6844](https://github.com/hyperf/hyperf/pull/6844) 为 `Hyperf\Database\Model\Concerns\QueriesRelationships` 新增方法 `whereRelation` 和 `orWhereRelation`。 - Network accessline 537
- [#6843](https://github.com/hyperf/hyperf/pull/6843) [#6847](https://github.com/hyperf/hyperf/pull/6847) 优化 `Collection` 和 `LazyCollection` 部分方法返回值的类型。 - Network accessline 543
- [#6809](https://github.com/hyperf/hyperf/pull/6809) 为 `hyperf/database` 增加基于 `cursor` 的分页机制。 - Network accessline 544
- [#6811](https://github.com/hyperf/hyperf/pull/6811) 为 `hyperf/validation` 增加验证器规则 `list`。 - Network accessline 545
- [#6814](https://github.com/hyperf/hyperf/pull/6814) 新增方法 `Model::query()->touch()` 用于更新 `updated_at` 数据。 - Network accessline 546
- [#6815](https://github.com/hyperf/hyperf/pull/6815) 新增方法 `Hyperf\Database\Model\Builder::qualifyColumns()`。 - Network accessline 547
- [#6816](https://github.com/hyperf/hyperf/pull/6816) 新增方法 `Hyperf\Database\Model\Builder::load*`。 - Network accessline 548
- [#6820](https://github.com/hyperf/hyperf/pull/6820) 新增方法 `Hyperf\Database\Model\Builder::valueOrFail()`。 - Network accessline 549
- [#6821](https://github.com/hyperf/hyperf/pull/6821) 新增方法 `Hyperf\Database\Concerns\BuildsQueries::chunkMap()`。 - Network accessline 550
- [#6822](https://github.com/hyperf/hyperf/pull/6822) 为 `Lazy Queries` 新增方法 `lazyById` 和 `lazyByIdDesc`。 - Network accessline 551
- [#6825](https://github.com/hyperf/hyperf/pull/6825) 为 `Hyperf\Database\Schmea` 新增方法 `createDatabase` 和 `dropDatabaseIfExists`。 - Network accessline 555
- [#6813](https://github.com/hyperf/hyperf/pull/6813) 修复 `Hyperf\Constants\Annotation\Message` 无法使用驼峰 `key` 的问题。 - Network accessline 556
- [#6818](https://github.com/hyperf/hyperf/pull/6818) 修复 `updateOrInsert` 不支持空数据的问题。 - Network accessline 557
- [#6828](https://github.com/hyperf/hyperf/pull/6828) 修复 `AOP` 无法作用于 `__construct` 的问题。 - Network accessline 558
- [#6836](https://github.com/hyperf/hyperf/pull/6836) 修复 `SetCookie::fromString` 无法正常使用的问题。 - Network accessline 564
- [#6796](https://github.com/hyperf/hyperf/pull/6796) [#6798](https://github.com/hyperf/hyperf/pull/6798) 修复 `Collection::mapInto()` 偶发报错的问题。 - Network accessline 568
- [#6792](https://github.com/hyperf/hyperf/pull/6792) 为 `Hyperf\Database\Query\Builder` 增加 `IncrementEach` 和 `DecrementEach` 方法。 - Network accessline 569
- [#6793](https://github.com/hyperf/hyperf/pull/6793) 为 `tracer` 增加 `Request` 和 `Response` 数据。 - Network accessline 570
- [#6795](https://github.com/hyperf/hyperf/pull/6795) 为 `rate-limit` 增加配置 `rate_limit.storage.options.expired_time`。 - Network accessline 574
- [#6778](https://github.com/hyperf/hyperf/pull/6788) 为 `Hyperf\Amqp\Annotation\Consumer::routingKey` 增加 `array` 支持。 - Network accessline 575
- [#6799](https://github.com/hyperf/hyperf/pull/6799) 为 `Hyperf\Stringable\Str` 增加 `numbers` 和 `fromBase64` 方法。 - Network accessline 576
- [#6803](https://github.com/hyperf/hyperf/pull/6803) 为 `AsCommand` 和 `ClosureCommand` 取消返回值,避免与 `Command` 冲突。 - Network accessline 582
- [#6757](https://github.com/hyperf/hyperf/pull/6757) 新增 `Hyperf\Collection\LazyCollection`。 - Network accessline 583
- [#6763](https://github.com/hyperf/hyperf/pull/6763) 当遇到 `Premature end of data` 错误时,则认为当前数据库连接不可用,下次从连接池中取出来时,会被重连。 - Network accessline 584
- [#6767](https://github.com/hyperf/hyperf/pull/6767) 为 `Hyperf\Database\Query\Builder` 新增 `whereAll/orWhereAll` 和 `whereAny/orWhereAny` 方法。 - Network accessline 585
- [#6774](https://github.com/hyperf/hyperf/pull/6774) 为 `Hyperf\Database\Query\Builder` 增加 `Lateral Join` 方法。 - Network accessline 586
- [#6781](https://github.com/hyperf/hyperf/pull/6781) 为 `Hyperf\Collection\Arr` 增加一些新的方法。 - Network accessline 587
- [#6782](https://github.com/hyperf/hyperf/pull/6782) 为 `Hyperf\Database\Query\Builder` 新增 `whereJsonOverlaps`,`orWhereJsonOverlaps` 和 `whereJsonDoesntOverlap` 方法。 - Network accessline 588
- [#6783](https://github.com/hyperf/hyperf/pull/6783) 为 `Hyperf\Database\Query\Builder` 增加 `insertOrIgnoreUsing` 方法。 - Network accessline 589
- [#6784](https://github.com/hyperf/hyperf/pull/6784) 为 `Hyperf\Collection\Collection` 增加 `getOrPut` 和 `getOrSet` 方法。 - Network accessline 593
- [#6777](https://github.com/hyperf/hyperf/pull/6777) 优化 `StdoutLogger` 自定义参数的展示样式。 - Network accessline 594
- [#6778](https://github.com/hyperf/hyperf/pull/6778) 使用 `EnumeratesValues` 优化 `Collection`。 - Network accessline 600
- [#6755](https://github.com/hyperf/hyperf/pull/6755) 修复 `Hyperf\Serializer\ExceptionNormalizer` 不支持 `symfony 7` 的问题。 - Network accessline 604
- [#6734](https://github.com/hyperf/hyperf/pull/6734) 为 `AsCommand` 和 `ClosureCommand` 增加更加复杂的可选参数支持。 - Network accessline 605
- [#6746](https://github.com/hyperf/hyperf/pull/6746) 为 `Hyperf\Database\Query\Builder` 增加 `explain()` 方法。 - Network accessline 606
- [#6749](https://github.com/hyperf/hyperf/pull/6749) 为 `hyperf/validation` 增加一部分新的规则。 - Network accessline 607
- [#6752](https://github.com/hyperf/hyperf/pull/6752) 为 `Hyperf\Database\Seeders\Seed` 增加 `path` 和 `paths` 方法。 - Network accessline 613
- [#6738](https://github.com/hyperf/hyperf/pull/6738) 为 `Hyperf\Collection\Collection` 增加 `unshift` 方法。 - Network accessline 614
- [#6740](https://github.com/hyperf/hyperf/pull/6740) 为 `Hyperf\Database\Query\Builder` 增加 `useIndex` `forceIndex` 和 `ignoreIndex`。 - Network accessline 618
- [#6716](https://github.com/hyperf/hyperf/pull/6716) [#6717](https://github.com/hyperf/hyperf/pull/6717) 优化 `AMQP` 消费者启动时,声明交换机的逻辑。 - Network accessline 619
- [#6721](https://github.com/hyperf/hyperf/pull/6721) 优化了 `Collection` 中的 `when` 方法。 - Network accessline 620
- [#6731](https://github.com/hyperf/hyperf/pull/6731) 优化 `Hyperf\Testing\Concerns\InteractsWithModelFactory` 代码,避免因为 `hyperf/database` 没有引入时会报错的问题。 - Network accessline 624
- [#6728](https://github.com/hyperf/hyperf/pull/6728) 修复 `hyperf/watch` 组件在 `hyperf/constants` 开启枚举模式时,会无法正常使用的问题。 - Network accessline 630
- [#6709](https://github.com/hyperf/hyperf/pull/6709) 为 `RPC` 服务增加默认的 `onClose` 方法可供使用。 - Network accessline 631
- [#6712](https://github.com/hyperf/hyperf/pull/6712) 为 `Hyperf\Collection\Collection` 增加新的方法。 - Network accessline 635
- [#6700](https://github.com/hyperf/hyperf/pull/6700) 优化了 `Pluralizer` 的代码实现。 - Network accessline 641
- [#6689](https://github.com/hyperf/hyperf/pull/6689) 修复 `Socket-IO` 服务无法正常解析没有 `query` 但是 `data` 中携带 `?` 的数据。 - Network accessline 642
- [#6697](https://github.com/hyperf/hyperf/pull/6697) 修复使用 `Swow` 引擎时,`Request` 和 `Response` 的 `toString()` 方法无法正常使用 `withoutBody` 参数的问题。 - Network accessline 646
- [#6680](https://github.com/hyperf/hyperf/pull/6680) 为 `Hyperf\Coordinator` 增加了一些常用的助手函数。 - Network accessline 647
- [#6681](https://github.com/hyperf/hyperf/pull/6681) 为 `gen:constant` 脚本增加 `type` 选项,可以用于生成 `const` 或者 `enum` 两种不同写法的 `常量/枚举` 类。 - Network accessline 651
- [#6686](https://github.com/hyperf/hyperf/pull/6686) 优化 `FswatchDriver` 读到空字符串时,会盲目重启的情况。 - Network accessline 652
- [#6698](https://github.com/hyperf/hyperf/pull/6698) 升级 `hyperf/engine` 版本到 `v2.11`。 - Network accessline 653
- [#6696](https://github.com/hyperf/hyperf/pull/6696) 使用 `AMQP` 时,消息生产者可以不再必须配置 `Producer` 注解。 - Network accessline 659
- [#6674](https://github.com/hyperf/hyperf/pull/6674) 为 `Redis` 连接池增加 `getConfig()` 方法。 - Network accessline 663
- [#6664](https://github.com/hyperf/hyperf/pull/6664) 修复使用 `isset` 判断 `Hyperf\Collection\Collection` 中某个 `key` 时,无法正确处理 `null` 的问题。 - Network accessline 667
- [#6668](https://github.com/hyperf/hyperf/pull/6668) 优化多路复用 `RPC` 组件的错误捕获器,避免接口文件出错时,无法得到相应错误的问题。 - Network accessline 673
- [#6652](https://github.com/hyperf/hyperf/pull/6652) 新增 `Str::trim` 方法。 - Network accessline 674
- [#6658](https://github.com/hyperf/hyperf/pull/6658) 当接收到 `HEAD` 请求时,若不存在当前路由,则尝试从 `GET` 方法中读取中间件(因为在 fast-route 组件中,存在没有 `HEAD` 路由会尝试寻找 `GET` 路由的情况)。 - Network accessline 675
- [#6665](https://github.com/hyperf/hyperf/pull/6665) 当使用 `Websocket` 时,记录读取数据的错误日志。 - Network accessline 679
- [#6661](https://github.com/hyperf/hyperf/pull/6661) 在使用 `hyperf/watcher` 时,使用 `PHP_BINARY` 替代 `php` 作为默认的 2 进制命令。 - Network accessline 685
- [#6632](https://github.com/hyperf/hyperf/pull/6632) 为 `websocket-client` 增加设置 `headers` 的能力。 - Network accessline 686
- [#6648](https://github.com/hyperf/hyperf/pull/6648) 使用 `WebSocket` 组件的 `Sender::push()` 和 `Sender::disconnect` 时,增加 `bool` 类型的返回值。 - Network accessline 690
- [#6633](https://github.com/hyperf/hyperf/pull/6633) 修复定时任务会偶发跳过某些任务,不执行的问题。 - Network accessline 691
- [#6635](https://github.com/hyperf/hyperf/pull/6635) 修复 `ConsumerMessage::getQueue` 的返回类型。 - Network accessline 695
- [#6640](https://github.com/hyperf/hyperf/pull/6640) 为 `hyperf/constants` 增加 PHP8 注解的支持。 - Network accessline 701
- [#6613](https://github.com/hyperf/hyperf/pull/6613) 为 `hyperf/pool` 组件在回收链接时,增加 `ReleaseConnection` 事件。 - Network accessline 705
- [#6616](https://github.com/hyperf/hyperf/pull/6616) [#6617](https://github.com/hyperf/hyperf/pull/6617) 使用最新 `cs-fixer` 版本进行代码格式化。 - Network accessline 709
- [#6621](https://github.com/hyperf/hyperf/pull/6621) 标记 `WebSocketHandeShakeException` 为即将废弃, 请使用 `WebSocketHandShakeException`。 - Network accessline 715
- [#6609](https://github.com/hyperf/hyperf/pull/6609) 修复当 `scan` 配置不存在时,会清空整个配置的问题。 - Network accessline 719
- [#6594](https://github.com/hyperf/hyperf/pull/6594) 新增 `hyperf/carbon` 组件。 - Network accessline 723
- [#6600](https://github.com/hyperf/hyperf/pull/6600) 优化 `AMQP` 组件,在进程退出时,不再记录警告日志。 - Network accessline 724
- [#6608](https://github.com/hyperf/hyperf/pull/6608) 优化 `CacheAheadAspect`,使其在子协程中同步缓存,不会阻塞当前协程。 - Network accessline 730
- [#6576](https://github.com/hyperf/hyperf/pull/6576) 新增 `Hyperf\Stringable\Str::apa()` 方法。 - Network accessline 731
- [#6577](https://github.com/hyperf/hyperf/pull/6577) 在 `Command` 执行前,自动装载符合命名规则的 `traits`。 - Network accessline 732
- [#6579](https://github.com/hyperf/hyperf/pull/6579) 为 `hyperf/support` 组件新增 `now()` 和 `today()` 方法。 - Network accessline 733
- [#6590](https://github.com/hyperf/hyperf/pull/6590) 为 `MigrateCommand` 增加 `--graceful` 选项。 - Network accessline 737
- [#6593](https://github.com/hyperf/hyperf/pull/6593) 修复注解 `AsCommand` 无法正常工作的问题。 - Network accessline 743
- [#6569](https://github.com/hyperf/hyperf/pull/6569) 修复使用 `http2-client` 组件时,当读取超时,`channel` 被移除后,会导致报错的问题。 - Network accessline 744
- [#6561](https://github.com/hyperf/hyperf/pull/6561) 修复使用 `gen:model` 创建模型时,模型关系注释会生成失败的问题。 - Network accessline 745
- [#6566](https://github.com/hyperf/hyperf/pull/6566) 修复使用 `$request->all()` 读取所有入参时,数字类型的 `key` 值会被重置的问题。 - Network accessline 746
- [#6567](https://github.com/hyperf/hyperf/pull/6567) 修复监听器 `CrontabRegisterListener` 不会主动检查 `crontab.enable` 配置。 - Network accessline 752
- [#6555](https://github.com/hyperf/hyperf/pull/6555) 修复使用非 `string` 参数时,数据库组件中 `invalidOperator` 方法会报错的问题。 - Network accessline 753
- [#6563](https://github.com/hyperf/hyperf/pull/6563/files) 修复定时任务睡眠间隔会偶发出现跳秒的问题。 - Network accessline 757
- [#6550](https://github.com/hyperf/hyperf/pull/6550) 为 `hyperf/opentracing` 增加 `noop` 适配器。 - Network accessline 758
- [#6562](https://github.com/hyperf/hyperf/pull/6562) 为 `hyperf/cache` 组件增加 `SqliteDriver` 适配器。 - Network accessline 762
- [#6556](https://github.com/hyperf/hyperf/pull/6556) 在数据库组件时,允许为模型参数复制表达式。**_但这不是一个标准用法,尽量不要使用_** - Network accessline 768
- [#6542](https://github.com/hyperf/hyperf/pull/6542) 为 `hyperf/cache` 新增内存缓存驱动 `MemoryDriver`。 - Network accessline 769
- [#6533](https://github.com/hyperf/hyperf/pull/6533) 新增 `database-sqlite` 组件。 - Network accessline 773
- [#6539](https://github.com/hyperf/hyperf/pull/6539) 为 `retry` 方法,增加支持手动设置,每次重试时延时时长的功能。 - Network accessline 779
- [#6482](https://github.com/hyperf/hyperf/pull/6482) 修复使用验证器组件时,`decimal` 规则无法与 `size` 配合使用的问题。 - Network accessline 783
- [#6518](https://github.com/hyperf/hyperf/pull/6518) 为 `AMQP` 的事件消息,统一增加 `AmqpMessage` 参数。 - Network accessline 784
- [#6526](https://github.com/hyperf/hyperf/pull/6526) 为 `Crontab` 增加 `Conditionable` trait。 - Network accessline 788
- [#6517](https://github.com/hyperf/hyperf/pull/6517) 修复 `async-queue` 组件,消息结构无法兼容老版本的问题。 - Network accessline 789
- [#6520](https://github.com/hyperf/hyperf/pull/6520) 使用 `logger` 组件时,优化 `UdpSocketAspect` 的协程处理功能。 - Network accessline 795
- [#6509](https://github.com/hyperf/hyperf/pull/6509) 修复 `Crontab` 组件的 `Schedule::call()` 方法不支持 `array` 参数的问题。 - Network accessline 799
- [#6511](https://github.com/hyperf/hyperf/pull/6511) 优化异步队列消息体结构 `Hyperf\AsyncQueue\JobMessage`。 - Network accessline 803
- [#6504](https://github.com/hyperf/hyperf/pull/6504) 为 `rpc-multiplex` 组件增加 `HostReaderInterface` 支持,允许用户自定义协议 `Host`。 - Network accessline 809
- [#6491](https://github.com/hyperf/hyperf/pull/6491) 修复 Swagger 参数验证器无法正常收集 `query` 参数验证规则的问题。 - Network accessline 810
- [#6500](https://github.com/hyperf/hyperf/pull/6500) 修复单独使用多路复用客户端时,无法正常解析返回值的问题。(正常使用多路复用组件的不受影响) - Network accessline 814
- [#6483](https://github.com/hyperf/hyperf/pull/6483) [#6487] (https://github.com/hyperf/hyperf/pull/6487) 为 Crontab 的注册,增加了新的方式。 - Network accessline 815
- [#6488](https://github.com/hyperf/hyperf/pull/6488) 为 `Psr\Log\LoggerInterface` 接口增加默认的实现类。 - Network accessline 816
- [#6495](https://github.com/hyperf/hyperf/pull/6495) 为 `closure-command` 增加执行 `Crontab` 的支持。 - Network accessline 817
- [#6501](https://github.com/hyperf/hyperf/pull/6501) 新增 `Collection::replace()` 和 `Collection::replaceRecursive()`。 - Network accessline 821
- [#6480](https://github.com/hyperf/hyperf/pull/6480) 当 `Crontab` 的任务跳过时,优化日志格式。 - Network accessline 822
- [#6489](https://github.com/hyperf/hyperf/pull/6489) 移出旧版本 `php` 和 `swoole` 的判断。 - Network accessline 828
- [#6449](https://github.com/hyperf/hyperf/pull/6449) 新增方法 `ReflectionManager::getAllClassesByFinder`。 - Network accessline 829
- [#6468](https://github.com/hyperf/hyperf/pull/6468) 为 `Crontab` 增加环境变量限制。 - Network accessline 830
- [#6471](https://github.com/hyperf/hyperf/pull/6471) 新增方法 `Arr::remove`。 - Network accessline 831
- [#6474](https://github.com/hyperf/hyperf/pull/6474) 新增方法 `Crontab::setOptions()` 和 `Crontab::getOptions()`。 - Network accessline 835
- [#6440](https://github.com/hyperf/hyperf/pull/6440) 优化代码 `Hyperf\SocketIOServer\Parser\Decoder::decode()`。 - Network accessline 836
- [#6472](https://github.com/hyperf/hyperf/pull/6472) 优化代码 `DispatcherFactory`,当读取路由时,使用 `require` 代替 `require_once`。 - Network accessline 837
- [#6473](https://github.com/hyperf/hyperf/pull/6473) 执行 `gen:swagger-schema` 脚本时,自动生成对应的文件夹。 - Network accessline 838
- [#6477](https://github.com/hyperf/hyperf/pull/6477) 为 `Crontab` 优化 `serverMutex` 和 `taskMutex` 的绑定逻辑。 - Network accessline 844
- [#6423](https://github.com/hyperf/hyperf/pull/6423) 修复定时任务的时区无法正常使用的问题。 - Network accessline 845
- [#6436](https://github.com/hyperf/hyperf/pull/6436) 修复 `AMQP` 消费者生成脚本无法生成正确文件的问题。 - Network accessline 849
- [#6431](https://github.com/hyperf/hyperf/pull/6431) 新增监听器 `UnsetContextInTaskWorkerListener` 可以有效防止使用非协程化的 Task 进程时,数据库链接被复制的问题。 - Network accessline 853
- [#6435](https://github.com/hyperf/hyperf/pull/6435) [#6437](https://github.com/hyperf/hyperf/pull/6437) 优化模型生成器,可以根据模型内 `use` 代码块,为模型字段生成匹配的注释。 - Network accessline 859
- [#6419](https://github.com/hyperf/hyperf/pull/6419) 修复使用熔断器时,`prepareHandler` 有时无法正常解析待执行方法的问题。 - Network accessline 863
- [#6426](https://github.com/hyperf/hyperf/pull/6426) 新增注解 `RewriteReturnType`,可以用来修改 `gen:model` 生成模型后,参数注释的返回值类型。 - Network accessline 867
- [#6415](https://github.com/hyperf/hyperf/pull/6415) 当使用 `Base62::decode` 反序列化空字符串时,抛出异常 `InvalidArgumentException` 而不是 `TypeError`。 - Network accessline 873
- [#6389](https://github.com/hyperf/hyperf/pull/6389) 修复使用 `scout` 组件时,在索引设置为 `Null` 的情况下,无法正常读取 `Elasticsearch` 服务的版本号的问题。 - Network accessline 874
- [#6406](https://github.com/hyperf/hyperf/pull/6406) 修复 `Hyperf\Scout\Searchable` 没有正确引入 `config` 方法命名空间的问题。 - Network accessline 878
- [#6398](https://github.com/hyperf/hyperf/pull/6398) 为 `hyperf/crontab` 组件中的每一个任务,增加设置时区的能力。 - Network accessline 879
- [#6402](https://github.com/hyperf/hyperf/pull/6402) 为 `twig` 模板引擎,增加 `template_suffix` 配置。 - Network accessline 885
- [#6372](https://github.com/hyperf/hyperf/pull/6372) 修复使用动态参数时,AOP 无法正常使用的问题。 - Network accessline 886
- [#6374](https://github.com/hyperf/hyperf/pull/6374) 修复使用 `rate_limit.storage` 配置时,`RateLimitAnnotationAspect::getWeightingAnnotation()` 无法正常使用的问题。 - Network accessline 887
- [#6384](https://github.com/hyperf/hyperf/pull/6384) 修复使用 `Elasticsearch` v7 以下版本且没有指定索引时,`scout` 组件无法正常使用的问题。 - Network accessline 891
- [#6357](https://github.com/hyperf/hyperf/pull/6357) 为 `command` `config` `devtool` `di` 和 `server` 组件增加 `symfony` 7.x 版本的支持。 - Network accessline 892
- [#6373](https://github.com/hyperf/hyperf/pull/6373) 为 `GRPC` 客户端增加 `ping` 方法。 - Network accessline 893
- [#6379](https://github.com/hyperf/hyperf/pull/6379) 为 `swagger` 组件增加自定义 `attribute` 的能力。 - Network accessline 894
- [#6380](https://github.com/hyperf/hyperf/pull/6380) 为 `swagger` 组件增加支持收集 `mediaType` 类型验证规则的能力。 - Network accessline 898
- [#6376](https://github.com/hyperf/hyperf/pull/6376) 当没有安装 `Swoole` 扩展或没有安装 `hyperf/polyfill-coroutine` 组件的情况下,允许开发者开启 Swoole 短名功能。 - Network accessline 904
- [#6347](https://github.com/hyperf/hyperf/pull/6347) 修复 `view()` 方法会增加多余的 `content-type` 的问题。 - Network accessline 905
- [#6352](https://github.com/hyperf/hyperf/pull/6352) 修复使用 `grpc` 协议的 `nacos` 配置中心时,无法正常使用的问题。 - Network accessline 906
- [#6350](https://github.com/hyperf/hyperf/pull/6350) 修复因 `GrpcClient::runReceiveCoroutine` 会在 `recv` 前删除 `recv channel`,导致其无法在后续中被使用的问题。 - Network accessline 907
- [#6361](https://github.com/hyperf/hyperf/pull/6361) 修复 `Hyperf\SocketIOServer\Emitter\Future` 无法被实例化的问题。 - Network accessline 911
- [#6342](https://github.com/hyperf/hyperf/pull/6342) 增加 `Coroutine::fork()` 和 `Coroutine::pid()` 方法。 - Network accessline 912
- [#6360](https://github.com/hyperf/hyperf/pull/6360) 为 `swagger` 服务增加 `content-type`。 - Network accessline 913
- [#6363](https://github.com/hyperf/hyperf/pull/6363) 为熔断器的 `fallback` 参数,增加 `callable` 类型的支持。 - Network accessline 928
- [#5843](https://github.com/hyperf/hyperf/pull/5843) 为 `reactive-x` 增加 `Swow` 支持。 - Network accessline 929
- [#5844](https://github.com/hyperf/hyperf/pull/5844) 为 `socketio-server` 增加 `Swow` 支持。 - Network accessline 933
- [x] 增加 [Psr7Plus](https://github.com/swow/psr7-plus) 支持。 - Network accessline 934
- [x] 增加 [pest](https://github.com/pestphp/pest) 支持。 - Network accessline 935
- [x] 新增 `hyperf/helper` 组件。 - [x] 新增 `hyperf/polyfill-coroutine` 组件。 - [#5815](https://github.com/hyperf/hyperf/pull/5815) 对 `hyperf/db` 组件,增加了 `pdo` 引擎别名 `mysql`。 - Network accessline 936
- [x] 新增 `hyperf/polyfill-coroutine` 组件。 - [#5815](https://github.com/hyperf/hyperf/pull/5815) 对 `hyperf/db` 组件,增加了 `pdo` 引擎别名 `mysql`。 - [#5849](https://github.com/hyperf/hyperf/pull/5849) 支持数据库操作时,使用枚举进行更新和插入操作。 - Network accessline 937
- [#5815](https://github.com/hyperf/hyperf/pull/5815) 对 `hyperf/db` 组件,增加了 `pdo` 引擎别名 `mysql`。 - Network accessline 938
- [#5849](https://github.com/hyperf/hyperf/pull/5849) 支持数据库操作时,使用枚举进行更新和插入操作。 - Network accessline 939
- [#5894](https://github.com/hyperf/hyperf/pull/5894) [#5897](https://github.com/hyperf/hyperf/pull/5897) 为单元测试组件,增加了 `model-factory` 支持。 - Network accessline 940
- [#5898](https://github.com/hyperf/hyperf/pull/5898) 为数据库组件增加 `toRawSql()` 方法。 - Network accessline 941
- [#5906](https://github.com/hyperf/hyperf/pull/5906) 为数据库组件增加 `getRawQueryLog()` 方法。 - Network accessline 942
- [#5915](https://github.com/hyperf/hyperf/pull/5915) 新增助手函数 `data_forget`。 - Network accessline 943
- [#5914](https://github.com/hyperf/hyperf/pull/5914) 新增方法 `Str::isUrl()`。 - Network accessline 944
- [#5918](https://github.com/hyperf/hyperf/pull/5918) 新增方法 `Arr::isList()`。 - Network accessline 945
- [#5925](https://github.com/hyperf/hyperf/pull/5925) [#5926](https://github.com/hyperf/hyperf/pull/5926) 为数据库组件的模型,增加自定义为枚举的支持。 - Network accessline 946
- [#5930](https://github.com/hyperf/hyperf/pull/5930) [#5934](https://github.com/hyperf/hyperf/pull/5934) 新增 `AsCommand` 注解和 `ClosureCommand`。 - Network accessline 947
- [#5950](https://github.com/hyperf/hyperf/pull/5950) 为 `hyperf/async-queue` 组件新增 `Job::setMaxAttempts` 方法和 `dispatch` 方法。 - Network accessline 948
- [#5983](https://github.com/hyperf/hyperf/pull/5983) [#5985](https://github.com/hyperf/hyperf/pull/5985) 为 `hyperf/cache` 的注解增加 `skipCacheResults` 参数,用于跳过缓存阶段。 - Network accessline 949
- [#5994](https://github.com/hyperf/hyperf/pull/5994) 为 `Crontab` 增加生命周期事件。 - Network accessline 950
- [#6039](https://github.com/hyperf/hyperf/pull/6039) 为 `Crontab` 增加语义化的规则设置。 - Network accessline 951
- [#6082](https://github.com/hyperf/hyperf/pull/6082) 新增 `hyperf/stdlib` 组件。 - Network accessline 952
- [#6085](https://github.com/hyperf/hyperf/pull/6085) 为数据库组件的 `Connection` 增加一个错误数量,确保当出现多次错误时,会在下次重新连接。 - Network accessline 953
- [#6106](https://github.com/hyperf/hyperf/pull/6106) 新增了部分验证器规则。 - Network accessline 954
- [#6124](https://github.com/hyperf/hyperf/pull/6124) 新增方法 `Hyperf\AsyncQueue\Job::fail()`。 - Network accessline 955
- [#6259](https://github.com/hyperf/hyperf/pull/6259) 为 `Hyperf\Database\Query\Builder\addSelect` 增加使用 `QueryBuilder` 的支持。 - Network accessline 956
- [#6301](https://github.com/hyperf/hyperf/pull/6301) 为限流器组件,增加自定义设置存储器的能力。 - Network accessline 960
- [x] 将 `Prometheus` 组件库从默认依赖改为建议。 - [#5586](https://github.com/hyperf/hyperf/pull/5586) 为 `Nacos` 服务注册与发现,增加 `GRPC` 能力。 - Network accessline 961
- [#5586](https://github.com/hyperf/hyperf/pull/5586) 为 `Nacos` 服务注册与发现,增加 `GRPC` 能力。 - Network accessline 962
- [#5866](https://github.com/hyperf/hyperf/pull/5866) 在特别场景,使用 `StrCache` 代替 `Str`,减少 CPU 开销,优化性能。 - Network accessline 963
- [#5872](https://github.com/hyperf/hyperf/pull/5872) 使用负载均衡组件时,避免因频繁调用 `refresh()` 方法,导致会执行多次回调函数的问题。 - Network accessline 964
- [#5879](https://github.com/hyperf/hyperf/pull/5879) [#5878](https://github.com/hyperf/hyperf/pull/5878) 为 `Command` 组件,增加了一些新特性。 - Network accessline 965
- [#5901](https://github.com/hyperf/hyperf/pull/5901) 优化 `RPC` 协议,让 `id` 同时支持 string 和 int 两种类型。 - Network accessline 966
- [#5905](https://github.com/hyperf/hyperf/pull/5905) 为 `Collection::forget` 入参,增加更多类型支持。 - Network accessline 967
- [#5917](https://github.com/hyperf/hyperf/pull/5917) 优化 `Str::isUrl()` 方法。 - Network accessline 968
- [#5920](https://github.com/hyperf/hyperf/pull/5920) 将所有存在 `__toString()` 方法的类,增加 `\Stringable` 接口。 - Network accessline 969
- [#5945](https://github.com/hyperf/hyperf/pull/5945) 使用 `Apollo` 配置中心时,避免因为监听多个命名空间,导致频繁更新配置的问题。 - Network accessline 970
- [#5948](https://github.com/hyperf/hyperf/pull/5948) 优化 `Hyperf\Coroutine\Locker` 的实现。 - Network accessline 971
- [#5960](https://github.com/hyperf/hyperf/pull/5960) 为 `amqp` 组件的注解,增加 `poolName` 参数。 - Network accessline 972
- [#5972](https://github.com/hyperf/hyperf/pull/5972) 使用 `Collection::except()` 方法时,如果传入的 key 为 null,则默认返回所有数据。 - Network accessline 973
- [#5973](https://github.com/hyperf/hyperf/pull/5973) 简化 `logger` 组件 `handlers` 的定义。 - Network accessline 974
- [#6010](https://github.com/hyperf/hyperf/pull/6010) 使用数据库组件时,如果配置的自定义转化器不存在,则抛出错误。 - Network accessline 975
- [#6030](https://github.com/hyperf/hyperf/pull/6030) 为 `metric` 的独立进程收集模式,增加一种新的收集机制,减少进程间通信次数。 - Network accessline 976
- [#6131](https://github.com/hyperf/hyperf/pull/6131) 当 `Crontab` 的实际执行单元为 Null 时,抛出异常。 - Network accessline 977
- [#6172](https://github.com/hyperf/hyperf/pull/6172) 优化 `ProcessManager` 使其 `running` 状态更加清晰。 - Network accessline 978
- [#6184](https://github.com/hyperf/hyperf/pull/6184) 当时用协程风格时,为 `SafeSocket` 增加日志配置。 - Network accessline 979
- [#6247](https://github.com/hyperf/hyperf/pull/6247) 你可以从 `BadRequestHttpException` 中获取原始数据。 - Network accessline 980
- [#6338](https://github.com/hyperf/hyperf/pull/6338) 为 `swagger` 组件新增配置项 `processors`,用户可以追加自定义的 `swagger` 处理器。 - Network accessline 985
- [x] 移除 `setAccessible` 方法调用,因为 PHP8.1 版本开始已经默认。 - [x] 移除其他废弃的方法。 - [#5813](https://github.com/hyperf/hyperf/pull/5813) 不再支持 swoole 4.x 版本。 - Network accessline 986
- [x] 移除其他废弃的方法。 - [#5813](https://github.com/hyperf/hyperf/pull/5813) 不再支持 swoole 4.x 版本。 - [#5859](https://github.com/hyperf/hyperf/pull/5859) 默认移除 `Hyperf\Stringable\Str` 中的缓存逻辑。 - Network accessline 987
- [#5813](https://github.com/hyperf/hyperf/pull/5813) 不再支持 swoole 4.x 版本。 - Network accessline 988
- [#5859](https://github.com/hyperf/hyperf/pull/5859) 默认移除 `Hyperf\Stringable\Str` 中的缓存逻辑。 - Network accessline 989
- [#6040](https://github.com/hyperf/hyperf/pull/6040) 移出 `Hyperf\Di\Annotation\AbstractAnnotation` 中废弃的代码。 - Network accessline 990
- [#6043](https://github.com/hyperf/hyperf/pull/6043) 移出废弃的 `Hyperf\Coroutine\Traits\Container`。 - Network accessline 991
- [#6244](https://github.com/hyperf/hyperf/pull/6244) 移出废弃的组件 `swoole-tracker`。 - Network accessline 995
- 使用 Redis 组件时,如果设置了错误的 `option`,则抛出异常。 - [#5847](https://github.com/hyperf/hyperf/pull/5847) 变更 `metric` 组件默认的 `Redis` key 值。 - Network accessline 996
- [#5847](https://github.com/hyperf/hyperf/pull/5847) 变更 `metric` 组件默认的 `Redis` key 值。 - Network accessline 997
- [#5943](https://github.com/hyperf/hyperf/pull/5943) 使用 `JSON RPC` 功能时,若使用 `HTTP` 协议,不再因为 `HTTP 码` 非 `200` 时,移出对应的节点。 - Network accessline 998
- [#5961](https://github.com/hyperf/hyperf/pull/5961) 对于 `Hyperf\Amqp\Result` 和 `Hyperf\Amqp\Message\Type` 使用枚举替代常量。 - Network accessline 999
- [#6022](https://github.com/hyperf/hyperf/pull/6022) 当使用 `Base62::decode` 反序列化不正确的数据时,会抛出 `InvalidArgumentException` 而非 `TypeError`。 - Network accessline 1000
- [#6128](https://github.com/hyperf/hyperf/pull/6128) 当使用多层级目录 `hyperf/config` 时,可以使用 `config('a.c')` 读取 `autoload/a/c.php` 中的数据。 - Network accessline 1004
- [#5771](https://github.com/hyperf/hyperf/pull/5771) 修复 `Model::updateOrInsert` 返回值不是 `boolean` 的问题。 - Network accessline 1005
- [#6033](https://github.com/hyperf/hyperf/pull/6033) 修复`RequestContext` 和 `ResponseContext` 无法读取其他协程的数据的问题。 - Network accessline 1006
- [#6056](https://github.com/hyperf/hyperf/pull/6056) 修复 `Hyperf\HttpServer\Request::hasFile()` 不支持 `Swow` 的问题。 - Network accessline 1007
- [#6260](https://github.com/hyperf/hyperf/pull/6260) 修复 `LoadBalancerInterface::refresh()` 中无法正常使用日志的问题。
skills/hyperf/references/zh-cn/circuit-breaker.md
- Network accessline 11
分布式系统中经常会出现由于某个基础服务不可用造成整个系统不可用的情况,这种现象被称为服务雪崩效应。为了应对服务雪崩,一种常见的做法是服务降级。而 [hyperf/circuit-breaker](https://github.com/hyperf/circuit-breaker) 组件,就是为了来解决这个问题的。
skills/hyperf/references/zh-cn/command.md
- Network accessline 3
Hyperf 的命令行默认由 [hyperf/command](https://github.com/hyperf/command) 组件提供,而该组件本身也是基于 [symfony/console](https://github.com/symfony/console) 的抽象。 - Network accessline 7
通常来说该组件会默认存在,但如果您希望用于非 Hyperf 项目,也可通过下面的命令依赖 [hyperf/command](https://github.com/hyperf/command) 组件: - Network accessline 21
如果你有安装 [hyperf/devtool](https://github.com/hyperf/devtool) 组件的话,可以通过 `gen:command` 命令来生成一个自定义命令:
skills/hyperf/references/zh-cn/communication.md
- Network accessline 16

skills/hyperf/references/zh-cn/component-guide/configprovider.md
- Network accessline 99
- 所有类的设计都必须允许通过标准 `OOP` 的使用方式来使用,所有 Hyperf 专有的功能必须作为增强功能并以单独的类来提供,也就意味着在非 Hyperf 框架下仍能通过标准的手段来实现组件的使用; - 组件的依赖设计如果可满足 [PSR 标准](https://www.php-fig.org/psr) 则优先满足且依赖对应的接口而不是实现类;如 [PSR 标准](https://www.php-fig.org/psr) 没有包含的功能,则可满足由 Hyperf 定义的 - Network accessline 100
- 组件的依赖设计如果可满足 [PSR 标准](https://www.php-fig.org/psr) 则优先满足且依赖对应的接口而不是实现类;如 [PSR 标准](https://www.php-fig.org/psr) 没有包含的功能,则可满足由 Hyperf 定义的契约库 [hyperf/contract](https://github.com/hyperf/contract) 内的接口时优先满足且依赖对应的接口而不是实现类;
skills/hyperf/references/zh-cn/component-guide/intro.md
- Network accessline 11
这里所指的开发准备工作,除了 Hyperf 的基础运行条件外,这里关注的更多是如何更加便捷的组织代码的结构以便于组件的开发工作,注意以下方式可能会由于 *软连接无法跳转的问题* 而并不适用于 Windows for Docker 下的开发环境。 在代码组织上,我们建议在同一个目录下 Clone [hyperf/hyperf-skeleton](https://github.com/hyperf/hyperf-skeleton) 项目骨架和 [hyperf/hyperf] - Network accessline 12
在代码组织上,我们建议在同一个目录下 Clone [hyperf/hyperf-skeleton](https://github.com/hyperf/hyperf-skeleton) 项目骨架和 [hyperf/hyperf](https://github.com/hyperf/hyperf) 项目组件库两个项目。进行下面的操作并呈以下结构: - Dangerous shell operationline 54
rm -rf composer.lock && rm -rf vendor && composer update
skills/hyperf/references/zh-cn/config-center.md
- Network accessline 5
- 由携程开源的 [ctripcorp/apollo](https://github.com/ctripcorp/apollo),由 [hyperf/config-apollo](https://github.com/hyperf/config-apollo) 组件提供功能支持。 - Network accessline 6
- 阿里云提供的免费配置中心服务 [应用配置管理(ACM, Application Config Manager)](https://help.aliyun.com/product/59604.html),由 [hyperf/config-aliyun-acm](https://github.com/hyperf/config-aliyun-acm) 组件提供功能支持。 - Network accessline 94
], 'client' => [ // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port - Network accessline 95
'client' => [ // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port // 'uri' => '', - Network accessline 96
// nacos server url like https://nacos.hyperf.io, Priority is higher than host:port - Network accessline 145
'driver' => Hyperf\ConfigApollo\ApolloDriver::class, // Apollo Server 'server' => 'http://127.0.0.1:9080', - Network accessline 146
// Apollo Server 'server' => 'http://127.0.0.1:9080', // 您的 AppId - Network accessline 147
'server' => 'http://127.0.0.1:9080', - Network accessline 187
], 'client' => [ // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port - Network accessline 188
'client' => [ // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port // 'uri' => '', - Network accessline 189
// nacos server url like https://nacos.hyperf.io, Priority is higher than host:port - Network accessline 232
'client' => [ # Etcd Client 'uri' => 'http://127.0.0.1:2379', - Network accessline 233
# Etcd Client 'uri' => 'http://127.0.0.1:2379', 'version' => 'v3beta', - Network accessline 234
'uri' => 'http://127.0.0.1:2379',
skills/hyperf/references/zh-cn/config.md
- Network accessline 3
当您使用的是 [hyperf/hyperf-skeleton](https://github.com/hyperf/hyperf-skeleton) 项目创建的项目时,Hyperf 的所有配置文件均处于根目录下的 `config` 文件夹内,每个选项都有说明,您可以随时查看并熟悉有哪些选项可以使用。 - Network accessline 67
此配置文件用于管理 Server 服务,其中的 `settings` 选项可以直接使用由 `Swoole Server` 提供的选项,其他选项可参考 [Swoole 官方文档](https://wiki.swoole.com/#/server/setting) 。 - Network accessline 126
该组件是官方提供的默认的配置组件,是面向 `Hyperf\Contract\ConfigInterface` 接口实现的,由 [hyperf/config](https://github.com/hyperf/config) 组件内的 `ConfigProvider` 将 `Hyperf\Config\Config` 对象绑定到接口上。 - Network accessline 150
这种方式要求注解的应用对象必须是通过 [hyperf/di](https://github.com/hyperf/di) 组件创建的,注入实例的细节可查阅 [依赖注入](zh-cn/di.md) 章节,示例中我们假设 `IndexController` 就是一个已经定义好的 `Controller` 类,`Controller` 类一定是由 `DI` 容器创建出来的; - Network accessline 170
在任意地方可以通过 `config(string $key, $default)` 函数获取对应的配置,但这样的使用方式也就意味着您对 [hyperf/config](https://github.com/hyperf/config) 和 [hyperf/support](https://github.com/hyperf/support) 组件是强依赖的。 - Network accessline 186
在 Hyperf 里我们提供了环境变量这一解决方案,通过利用 [vlucas/phpdotenv](https://github.com/vlucas/phpdotenv) 提供的环境变量解析功能,以及 `env()` 函数来获取环境变量的值,这一需求解决起来是相当的容易。 - Access to secretsline 198
[Credential-related source omitted]
skills/hyperf/references/zh-cn/constants.md
- Network accessline 151
要使 [hyperf/constants](https://github.com/hyperf/constants) 组件支持国际化,就必须要安装 [hyperf/translation](https://github.com/hyperf/translation) 组件并配置好语言文件,如下:
skills/hyperf/references/zh-cn/consul.md
- Network accessline 3
Hyperf 提供了一个 [Consul](https://www.consul.io/api/index.html) 的协程客户端,由于 Consul 本身的 API 比较简单,也支持 HTTP 的请求方法,故该组件仅对 API 进行了一些封装上的简化,基于 [hyperf/guzzle](https://github.com/hyperf/guzzle) 提供的协程 HTTP 客户端支持。 - Network accessline 25
$consulServer = 'http://127.0.0.1:8500'; - Network accessline 47
$consulServer = 'http://127.0.0.1:8500';
skills/hyperf/references/zh-cn/contribute.md
- Network accessline 3
Hyperf 是一个开源项目,一个开源项目的发展离不开开源社区的力量支持,如果您希望参与 Hyperf 的开发,可以先从 [issues](https://github.com/hyperf/hyperf/issues?page=2&q=is%3Aissue+is%3Aopen) 开始,通常来说会有以下的一些步骤: - Network accessline 5
1. 关注 [issues](https://github.com/hyperf/hyperf/issues?page=2&q=is%3Aissue+is%3Aopen) 的动态,评论回复帮助提出疑问的用户; - Network accessline 6
2. 根据 [issues](https://github.com/hyperf/hyperf/issues?page=2&q=is%3Aissue+is%3Aopen) 的内容,找寻根据自己当前对 Hyperf 的了解程度,去修复力所能及的 BUG 或实现功能,并以 [Pull Request](https://github.com/hyperf/hyperf/pulls) 的形式提交至 [hyperf/hyperf](https://github.com/hyperf/h - Network accessline 14
Hyperf 团队是对 Hyperf 项目及其周边项目进行持续维护和迭代的团队,如果您希望加入其中,首先需要您对 Hyperf 和开源拥有足够且持续的热情和动力,因为需要您付出大量的时间和精力到 Hyperf 项目及其周边项目的维护和迭代工作上,同时也需要您对 Hyperf 项目有足够的深入了解,以便维护工作的进行。因此我们对加入 Hyperf 团队也设有一定的门槛,**您需要在 [hyperf/hyperf](https://github.com/hyperf/hyperf - Network accessline 16
加入到 Hyperf 团队,您会得到包括但不限于以下的收获: 1. @hyperf.io E-mail 2. [Jetbrains All Products Pack](https://www.jetbrains.com/store/#commercial?billing=yearly) (US $649/year) - Network accessline 17
1. @hyperf.io E-mail 2. [Jetbrains All Products Pack](https://www.jetbrains.com/store/#commercial?billing=yearly) (US $649/year) 3. [Github team membership](https://github.com/orgs/hyperf/people) - Network accessline 18
2. [Jetbrains All Products Pack](https://www.jetbrains.com/store/#commercial?billing=yearly) (US $649/year) - Network accessline 19
3. [Github team membership](https://github.com/orgs/hyperf/people)
skills/hyperf/references/zh-cn/controller.md
- Network accessline 34
$ curl 'http://127.0.0.1:9501/?target=Hyperf'
skills/hyperf/references/zh-cn/coroutine-server.md
- Network accessline 3
Hyperf 默认使用的是 [Swoole 异步风格](https://wiki.swoole.com/#/server/init),此类型为多进程模型,自定义进程为单独进程运行。
skills/hyperf/references/zh-cn/coroutine.md
- Network accessline 44
> 注意 `MySQL` 等异步模块已在[4.3.0](https://wiki.swoole.com/#/version/bc?id=430)中移除,并转移到了[swoole_async](https://github.com/swoole/ext-async)。 - Network accessline 65
那么到底哪些是阻塞代码呢?我们可以简单的认为绝大多数你所熟知的非 `Swoole` 提供的异步函数的 `MySQL`、`Redis`、`Memcache`、`MongoDB`、`HTTP`、`Socket`等客户端,文件操作、`sleep/usleep` 等均为阻塞函数,这几乎涵盖了所有日常操作,那么要如何解决呢?`Swoole` 提供了 `MySQL`、`PostgreSQL`、`Redis`、`HTTP`、`Socket` 的协程客户端可以使用,同时 `Swoole 4. - Network accessline 74
对于全局变量,均是跟随着一个 `请求(Request)` 而产生的,而 `Hyperf` 的 `请求(Request)/响应(Response)` 是由 [hyperf/http-message](https://github.com/hyperf/http-message) 通过实现 [PSR-7](https://www.php-fig.org/psr/psr-7/) 处理的,故所有的全局变量均可以在 `请求(Request)` 对象中得到相关的值; - Network accessline 308
框架在入口函数中提供了 `SWOOLE_HOOK_FLAGS` 常量,如果您需要修改整个项目的 `Runtime Hook` 等级,比如想要支持 `CURL 协程` 并且 `Swoole` 版本为 `v4.5.4` 之前的版本,可以修改这里的代码,如下。
skills/hyperf/references/zh-cn/crontab.md
- Network accessline 3
通常来说,执行定时任务会通过 Linux 的 `crontab` 命令来实现,但现实情况下,并不是所有开发人员都能够拥有生产环境的服务器去设置定时任务的,这里 [hyperf/crontab](https://github.com/hyperf/crontab) 组件为您提供了一个 `秒级` 定时任务功能,只需通过简单的定义即可完成一个定时任务的定义。
skills/hyperf/references/zh-cn/dag.md
- Network accessline 23
[ 功能十分强大,但也不可否认效率上确实些许不足。这里提供一个极简的 `hyperf/db` 组件。
skills/hyperf/references/zh-cn/db/event.md
- Network accessline 3
模型事件实现 [psr/event-dispatcher](https://github.com/php-fig/event-dispatcher) 接口,默认由 [hyperf/event](https://github.com/hyperf/event) 组件提供功能支持。 - Network accessline 189
得益于 [hyperf/model-listener](https://github.com/hyperf/blob/master/src/model-listener/) 组件,我们也可以使用 `Observer` 来监听模型事件。 - Network accessline 190
通过 [ModelListener](https://github.com/hyperf/hyperf/blob/master/src/model-listener/src/Annotation/ModelListener.php) 注解,我们可以很方便的定义一个观察者,示例代码如下:
skills/hyperf/references/zh-cn/db/gen.md
- Network accessline 186
* This file is part of Hyperf. * * @link https://www.hyperf.io - Network accessline 187
* * @link https://www.hyperf.io * @document https://hyperf.wiki - Network accessline 188
* @link https://www.hyperf.io - Network accessline 189
* @document https://hyperf.wiki - Network accessline 190
* @contact group@hyperf.io * @license https://github.com/hyperf/hyperf/blob/master/LICENSE */ - Network accessline 191
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
skills/hyperf/references/zh-cn/db/model.md
- Network accessline 3
模型组件衍生于 [Eloquent ORM](https://laravel.com/docs/5.8/eloquent),相关操作均可参考 Eloquent ORM 的文档。
skills/hyperf/references/zh-cn/db/mutators.md
- Network accessline 3
> 本文档大量借鉴于 [LearnKu](https://learnku.com) 十分感谢 LearnKu 对 PHP 社区做出的贡献。
skills/hyperf/references/zh-cn/db/paginator.md
- Network accessline 3
在使用 [hyperf/database](https://github.com/hyperf/database) 来查询数据时,可以很方便的通过与 [hyperf/paginator](https://github.com/hyperf/paginator) 组件配合便捷地对查询结果进行分页。
skills/hyperf/references/zh-cn/db/querybuilder.md
skills/hyperf/references/zh-cn/db/quick-start.md
- Network accessline 5
> [hyperf/database](https://github.com/hyperf/database) 衍生于 [illuminate/database](https://github.com/illuminate/database),我们对它进行了一些改造,大部分功能保持了相同。在这里感谢一下 Laravel 开发组,实现了如此强大好用的 ORM 组件。 - Network accessline 7
[hyperf/database](https://github.com/hyperf/database) 组件是基于 [illuminate/database](https://github.com/illuminate/database) 衍生出来的组件,我们对它进行了一些改造,从设计上是允许用于其它 PHP-FPM 框架或基于 Swoole 的框架中的,而在 Hyperf 里就需要提一下 [hyperf/db-connection](https://github.com - Network accessline 222
* This file is part of Hyperf. * * @link https://www.hyperf.io - Network accessline 223
* * @link https://www.hyperf.io * @document https://doc.hyperf.io - Network accessline 224
* @link https://www.hyperf.io - Network accessline 225
* @document https://doc.hyperf.io - Network accessline 226
* @contact group@hyperf.io * @license https://github.com/hyperf/hyperf/blob/master/LICENSE */ - Network accessline 227
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE - Network accessline 369
和 [illuminate/database](https://github.com/illuminate/database) 不同,[hyperf/database](https://github.com/hyperf/database) 默认只提供了 MySQL 驱动,目前还提供了 [PgSQL](https://github.com/hyperf/database-pgsql)、[SQLite](https://github.com/hyperf/database-sq
skills/hyperf/references/zh-cn/db/relationship.md
- Network accessline 417
* This file is part of Hyperf. * * @link https://www.hyperf.io - Network accessline 418
* * @link https://www.hyperf.io * @document https://doc.hyperf.io - Network accessline 419
* @link https://www.hyperf.io - Network accessline 420
* @document https://doc.hyperf.io - Network accessline 421
* @contact group@hyperf.io * @license https://github.com/hyperf/hyperf/blob/master/LICENSE */ - Network accessline 422
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
skills/hyperf/references/zh-cn/di.md
- Network accessline 5
Hyperf 默认采用 [hyperf/di](https://github.com/hyperf/di) 作为框架的依赖注入管理容器,尽管从设计上我们允许您更换其它的依赖注入管理容器,但我们强烈不建议您更换该组件。 - Network accessline 6
[hyperf/di](https://github.com/hyperf/di) - Network accessline 12
该组件默认存在 [hyperf-skeleton](https://github.com/hyperf/hyperf-skeleton) 项目中并作为主要组件存在,如希望在其它框架内使用该组件可通过下面的命令安装。
skills/hyperf/references/zh-cn/distributed-transaction.md
- Network accessline 3
[dtm-client](https://github.com/dtm-php/dtm-client) 是由 Hyperf 团队开发并维护的 DTM 分布式事务客户端组件,配合 DTM-Server 可以实现分布式事务的管理,稳定可用于生产环境。 - Network accessline 4
[seata/seata-php](https://github.com/seata/seata-php) 是由 Hyperf 团队开发并贡献给 Seata 开源社区的 Seata PHP 客户端组件,配合 Seata-Server 可以实现分布式事务的管理,目前仍在开发迭代中,尚未能用于生产环境,希望大家能够共同参与进来加速孵化。 - Network accessline 8
[dtm/dtm-client](https://packagist.org/packages/dtm/dtm-client) 是分布式事务管理器 [DTM](https://github.com/dtm-labs/dtm) 的 PHP 客户端,已支持 TCC 模式、Saga、XA、二阶段消息模式的分布式事务模式,并分别实现了与 DTM Server 以 HTTP 协议或 gRPC 协议通讯,该客户端可安全运行于 PHP-FPM 和 Swoole 协程环境中,更是对 [Hyp - Network accessline 31
| 特性| DTM | SEATA |备注| |:-----:|:----:|:------------------------------------------------------------------------------------------------:|:----:| |[ - Network accessline 32
|:-----:|:----:|:------------------------------------------------------------------------------------------------:|:----:| |[支持语言](https://dtm.pub/other/opensource.html#lang) |<span style="color:green">Go、C#、Java、Python、PHP...</span>| - Network accessline 33
|[支持语言](https://dtm.pub/other/opensource.html#lang) |<span style="color:green">Go、C#、Java、Python、PHP...</span>| <span style="color:orange">Java、Go</span> |DTM 可轻松接入一门新语言| - Network accessline 34
|[存储引擎](https://dtm.pub/other/opensource.html#store) |<span style="color:green"> 支持数据库、Redis、Mongo 等 </span>| <span style="color:orange"> 数据库 </span> || - Network accessline 35
|[异常处理](https://dtm.pub/other/opensource.html#exception)| <span style="color:green"> 子事务屏障自动处理 </span>| <span style="color:orange"> 手动处理 </span> |DTM 解决了幂等、悬挂、空补偿| - Network accessline 36
|[SAGA 事务](https://dtm.pub/other/opensource.html#saga) |<span style="color:green"> 极简易用 </span> | <span style="color:orange"> 复杂状态机 </span> || - Network accessline 37
|[二阶段消息](https://dtm.pub/other/opensource.html#msg)|<span style="color:green">✓</span>| <span style="color:red">✗</span> |最简消息最终一致性架构| - Network accessline 38
|[TCC 事务](https://dtm.pub/other/opensource.html#tcc)| <span style="color:green">✓</span>| <span style="color:green">✓</span> || - Network accessline 39
|[XA 事务](https://dtm.pub/other/opensource.html#xa)|<span style="color:green">✓</span>| <span style="color:green">✓</span> || - Network accessline 40
|[AT 事务](https://dtm.pub/other/opensource.html#at)|<span style="color:orange"> 建议使用 XA</span>| <span style="color:green">✓</span> |AT 与 XA 类似,但有脏回滚| - Network accessline 41
|[单服务多数据源](https://dtm.pub/other/opensource.html#multidb)|<span style="color:green">✓</span>| <span style="color:red">✗</span> || - Network accessline 42
|[通信协议](https://dtm.pub/other/opensource.html#protocol)|HTTP、gRPC| Dubbo 等协议 |DTM 对云原生更加友好| - Network accessline 43
|[star 数量](https://dtm.pub/other/opensource.html#star)|<img src="https://img.shields.io/github/stars/dtm-labs/dtm.svg?style=social" alt="github stars"/>| <img src="https://img.shields.io/github/stars/seata/seata.svg?style=social" alt="githu - Network accessline 106
在使用之前,需要配置 `DtmClient\Middleware\DtmMiddleware` 中间件作为 Server 的全局中间件,该中间件支持 PSR-15 规范,可适用于各个支持该规范的的框架。 在 Hyperf 中的中间件配置可参考 [Hyperf 文档 - 中间件](https://www.hyperf.wiki/2.2/#/zh-cn/middleware/middleware) 一章。 - Network accessline 107
在 Hyperf 中的中间件配置可参考 [Hyperf 文档 - 中间件](https://www.hyperf.wiki/2.2/#/zh-cn/middleware/middleware) 一章。 - Network accessline 111
dtm-client 的使用非常简单,我们提供了一个示例项目 [dtm-php/dtm-sample](https://github.com/dtm-php/dtm-sample) 来帮助大家更好的理解和调试。 - Network accessline 112
在使用该组件之前,也强烈建议您先阅读 [DTM 官方文档](https://dtm.pub/),以做更详细的了解。 - Network accessline 126
<img src="https://dtm.pub/assets/tcc_normal.dea14fb3.jpg" height=600 /> - Network accessline 147
protected string $serviceUri = 'http://127.0.0.1:9501'; - Network accessline 188
Saga 模式是分布式事务领域最有名气的解决方案之一,也非常流行于各大系统中,最初出现在 1987 年 由 Hector Garcaa-Molrna & Kenneth Salem 发表的论文 [SAGAS](https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf) 里。 - Network accessline 210
<img src="https://dtm.pub/assets/saga_normal.a2849672.jpg" height=428 /> - Network accessline 229
protected string $serviceUri = 'http://127.0.0.1:9501'; - Dangerous shell operationline 261
XA 是由 X /Open 组织提出的分布式事务的规范,XA 规范主要定义了(全局)事务管理器(TM)和(局部)资源管理器(RM)之间的接口。本地的数据库如 mysql 在 XA 中扮演的是 RM 角色 - Dangerous shell operationline 265
第一阶段(prepare):即所有的参与者 RM 准备执行事务并锁住需要的资源。参与者 ready 时,向 TM 报告已准备就绪。 第二阶段 (commit/rollback):当事务管理者(TM)确认所有参与者(RM)都 ready 后,向所有参与者发送 commit 命令。 - Network accessline 271
<img src="https://dtm.pub/assets/xa_normal.5a0ce600.jpg" height=600/> - Network accessline 299
protected string $serviceUri = 'http://127.0.0.1:9502';
skills/hyperf/references/zh-cn/eco/box.md
- Network accessline 12
wget https://github.com/hyperf/box/releases/download/v0.5.5/box_x86_64_macos -O box - Dangerous shell operationline 13
sudo mv ./box /usr/local/bin/box - Dangerous shell operationline 14
sudo chmod 755 /usr/local/bin/box - Network accessline 21
wget https://github.com/hyperf/box/releases/download/v0.5.5/box_x86_64_linux -O box - Dangerous shell operationline 22
sudo mv ./box /usr/local/bin/box - Dangerous shell operationline 23
sudo chmod 755 /usr/local/bin/box - Network accessline 31
wget https://github.com/hyperf/box/releases/download/v0.0.3/box_php8.1_aarch64_linux -O box - Dangerous shell operationline 32
sudo mv ./box /usr/local/bin/box - Dangerous shell operationline 33
sudo chmod 755 /usr/local/bin/box - Network accessline 40
curl -o box.exe https://github.com/hyperf/box/releases/download/v0.5.5/box_x64_windows.exe - Network accessline 48
1. [创建 Github Access Token](https://github.com/settings/tokens/new),`workflow` 范围需要勾选; - Network accessline 88
希望体验 Box 完整功能的朋友,需要通过 Swow Kernel 来运行,因此您需要基于 [hyperf/swow-skeleton](https://github.com/hyperf/swow-skeleton) 来运行您的项目,可通过 `box composer create-project hyperf/swow-skeleton` 命令来创建一个基于 Hyperf 3.0 版的 Swow 骨架项目。
skills/hyperf/references/zh-cn/elasticsearch.md
- Network accessline 3
[hyperf/elasticsearch](https://github.com/hyperf/elasticsearch) 主要为 [elasticsearch-php](https://github.com/elastic/elasticsearch-php) 进行了客户端对象创建的工厂类封装,[elasticsearch-php](https://github.com/elastic/elasticsearch-php) 默认使用 `Guzzle Ring` 客户端, - Network accessline 22
$client = $builder->setHosts(['http://127.0.0.1:9200'])->build(); - Network accessline 46
$client = $builder->setHosts(['http://127.0.0.1:9200'])->build(); - Network accessline 56
http://username:password@xxxx.aliyuncs.com:9200
skills/hyperf/references/zh-cn/etcd.md
skills/hyperf/references/zh-cn/event.md
- Network accessline 5
事件模式必须基于 [PSR-14](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-14-event-dispatcher.md) 去实现。 - Network accessline 6
Hyperf 的事件管理器默认由 [hyperf/event](https://github.com/hyperf/event) 实现,该组件亦可用于其它框架或应用,只需通过 Composer 将该组件引入即可。 - Network accessline 166

skills/hyperf/references/zh-cn/exception-handler.md
- Network accessline 24
### 通过[注解](https://github.com/hyperf/hyperf/blob/master/src/exception-handler/src/Annotation/ExceptionHandler.php)注册异常处理器
skills/hyperf/references/zh-cn/filesystem.md
- Network accessline 211
1. S3 存储请确认安装 `hyperf/guzzle` 组件以提供协程化支持。阿里云、七牛云、腾讯云云存储请[开启 Curl Hook](/zh-cn/coroutine?id=swoole-runtime-hook-level)来使用协程。因 Curl Hook 的参数支持性问题,请使用 Swoole 4.4.13 以上版本。 - Network accessline 217
ab -k -c 10 -n 1000 http://127.0.0.1:9501/ - Network accessline 220
未开启 CURL HOOK: - Network accessline 236
开启 CURL HOOK 后: - Access to secretsline 283
[Credential-related source omitted] - Access to secretsline 284
[Credential-related source omitted] - Access to secretsline 296
[Credential-related source omitted] - Access to secretsline 297
[Credential-related source omitted] - Access to secretsline 309
[Credential-related source omitted] - Access to secretsline 319
[Credential-related source omitted] - Access to secretsline 320
[Credential-related source omitted] - Access to secretsline 331
[Credential-related source omitted] - Access to secretsline 336
[Credential-related source omitted]
skills/hyperf/references/zh-cn/graphql.md
skills/hyperf/references/zh-cn/grpc.md
- Network accessline 5
推荐阅读 [tech| 再探 grpc](https://www.jianshu.com/p/f3221df39e6f),讲解了在 PHP 中实现 gRPC 相关基础知识。
skills/hyperf/references/zh-cn/guzzle.md
- Network accessline 3
[hyperf/guzzle](https://github.com/hyperf/guzzle) 组件基于 Guzzle 进行协程处理,通过 Swoole HTTP 客户端作为协程驱动替换到 Guzzle 内,以达到 HTTP 客户端的协程化。 - Network accessline 56
有时候我们想直接修改 `Swoole` 配置,所以我们也提供了相关配置项,不过这项配置在 `Curl Guzzle 客户端` 中是无法生效的,所以谨慎使用。 - Network accessline 66
$client = new Client([ 'base_uri' => 'http://127.0.0.1:8080', - Network accessline 67
'base_uri' => 'http://127.0.0.1:8080',
skills/hyperf/references/zh-cn/imgs/hyperf-events.svg
- Network accessline 1
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> - Network accessline 2
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> - Network accessline 3
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1388px" height="861px" viewBox="-0.5 -0.5 1388 861" content="<mxfile host="app.diagrams.net" modified="2020-04-06T01:5
skills/hyperf/references/zh-cn/json-rpc.md
- Network accessline 3
JSON RPC 是一种基于 JSON 格式的轻量级的 RPC 协议标准,易于使用和阅读。在 Hyperf 里由 [hyperf/json-rpc](https://github.com/hyperf/json-rpc) 组件来实现,可自定义基于 HTTP 协议来传输,或直接基于 TCP 协议来传输。 - Network accessline 11
该组件只是 JSON RPC 的协议处理的组件,通常来说,您仍需配合 [hyperf/rpc-server](https://github.com/hyperf/rpc-server) 或 [hyperf/rpc-client](https://github.com/hyperf/rpc-client) 来满足 服务端 和 客户端的场景,如同时使用则都需要安装: - Network accessline 58
`protocol` 属性为定义该服务暴露的协议,目前仅支持 `jsonrpc-http`, `jsonrpc`, `jsonrpc-tcp-length-check` ,分别对应于 HTTP 协议和 TCP 协议下的两种协议,默认值为 `jsonrpc-http`,这里的值对应在 `Hyperf\Rpc\ProtocolManager` 里面注册的协议的 `key`,它们本质上都是 JSON RPC 协议,区别在于数据格式化、数据打包、数据传输器等不同。 `serve - Network accessline 60
`publishTo` 属性为定义该服务所要发布的服务中心,目前仅支持 `consul`、`nacos` 或为空,为空时代表不发布该服务到服务中心去,但也就意味着您需要手动处理服务发现的问题,要使用此功能需安装 [hyperf/service-governance](https://github.com/hyperf/service-governance) 组件及对应的驱动依赖,具体可参考 [服务注册](zh-cn/service-register.md) 章节; - Network accessline 170
'drivers' => [ 'consul' => [ 'uri' => 'http://127.0.0.1:8500', - Network accessline 171
[Credential-related source omitted] - Network accessline 172
'uri' => 'http://127.0.0.1:8500', - Network accessline 174
], 'nacos' => [ // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port - Network accessline 175
'nacos' => [ // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port // 'url' => '', - Network accessline 176
// nacos server url like https://nacos.hyperf.io, Priority is higher than host:port - Network accessline 225
'registry' => [ 'protocol' => 'consul', 'address' => 'http://127.0.0.1:8500', - Network accessline 226
'protocol' => 'consul', 'address' => 'http://127.0.0.1:8500', ], - Network accessline 227
'address' => 'http://127.0.0.1:8500', - Network accessline 312
'registry' => [ 'protocol' => 'consul', 'address' => 'http://127.0.0.1:8500', - Network accessline 313
'protocol' => 'consul', 'address' => 'http://127.0.0.1:8500', ], - Network accessline 314
'address' => 'http://127.0.0.1:8500', - Network accessline 344
$registry = [ 'protocol' => 'consul', 'address' => 'http://127.0.0.1:8500', - Network accessline 345
'protocol' => 'consul', 'address' => 'http://127.0.0.1:8500', ]; - Network accessline 346
'address' => 'http://127.0.0.1:8500', - Network accessline 381
'registry' => [ 'protocol' => 'consul', 'address' => 'http://127.0.0.1:8500', - Network accessline 382
'protocol' => 'consul', 'address' => 'http://127.0.0.1:8500', ] - Network accessline 383
'address' => 'http://127.0.0.1:8500',
skills/hyperf/references/zh-cn/kafka.md
- Network accessline 5
[longlang/phpkafka](https://github.com/swoole/phpkafka) 组件由 [龙之言](http://longlang.org/) 提供,支持 `PHP-FPM` 和 `Swoole`。感谢 `Swoole 团队` 和 `禅道团队` 对社区做出的贡献。
skills/hyperf/references/zh-cn/lifecycle.md
- Network accessline 5
Hyperf 是运行于 [Swoole](http://github.com/swoole/swoole-src) 之上的,想要理解透彻 Hyperf 的生命周期,那么理解 [Swoole](http://github.com/swoole/swoole-src) 的生命周期也至关重要。 - Network accessline 6
Hyperf 的命令管理默认由 [symfony/console](https://github.com/symfony/console) 提供支持*(如果您希望更换该组件您也可以通过改变 skeleton 的入口文件更换成您希望使用的组件)*,在执行 `php bin/hyperf.php start` 后,将由 `Hyperf\Server\Command\StartServer` 命令类接管,并根据配置文件 `config/autoload/server.php` 内定
skills/hyperf/references/zh-cn/logger.md
- Network accessline 3
`hyperf/logger` 组件是基于 [psr/logger](https://github.com/php-fig/log) 实现的,默认使用 [monolog/monolog](https://github.com/Seldaek/monolog) 作为驱动,在 `hyperf-skeleton` 项目内默认提供了一些日志配置,默认使用 `Monolog\Handler\StreamHandler`, 由于 `Swoole` 已经对 `fopen`, `fwrite
skills/hyperf/references/zh-cn/metric.md
- Network accessline 13
Metric 支持 [Prometheus](https://prometheus.io/)、[StatsD](https://github.com/statsd/statsd) 和 [InfluxDB](http://influxdb.com),可以执行下面的命令安装对应的依赖: - Network accessline 405
如果您启用了默认指标,`Hyperf/Metric` 为您准备了一个开箱即用的 Grafana 控制台。下载控制台 [json 文件](https://cdn.jsdelivr.net/gh/hyperf/hyperf/src/metric/grafana.json),导入 Grafana 中即可使用。
skills/hyperf/references/zh-cn/microservice.md
- Network accessline 10
> 根据 Robert C. Martin 的一个对 [单一职责原则 (Single Responsibility Principle)](https://baike.baidu.com/item/单一职责原则/9456515) 的论述:“*把因为相同原因而变化的东西聚合到一起,把因为不同原因而变化的东西分离开来。*” 该论述很好地强调了内聚性这一概念。
skills/hyperf/references/zh-cn/middleware/middleware.md
- Network accessline 3
这里的中间件指的是 "中间件模式",该功能属于 [hyperf/http-server](https://github.com/hyperf/http-server) 组件内的一项主要功能,主要用于编织从 `请求(Request)` 到 `响应(Response)` 的整个流程,该功能完全基于 [PSR-15](https://www.php-fig.org/psr/psr-15/) 实现。
skills/hyperf/references/zh-cn/nacos.md
skills/hyperf/references/zh-cn/nsq.md
skills/hyperf/references/zh-cn/paginator.md
- Network accessline 3
在您需要对数据进行分页处理时,可以借助 [hyperf/paginator](https://github.com/hyperf/paginator) 组件很方便的解决您的问题,您可对您的数据查询进行一定的封装处理,以便更好的使用分页功能,该组件也可用于其它框架上。 - Network accessline 4
通常情况下,您对分页器的需求可能都是存在于数据库查询上,[hyperf/database](https://github.com/hyperf/database) 数据库组件已经与分页器组件进行了结合,您可以在进行数据查询时很方便的调用分页器来实现分页,具体可查阅 [数据库模型 - 分页](zh-cn/db/paginator.md) 章节。
skills/hyperf/references/zh-cn/phar.md
- Access to secretsline 48
[Credential-related source omitted]
skills/hyperf/references/zh-cn/process.md
- Network accessline 3
[hyperf/process](https://github.com/hyperf/process) 可以添加一个用户自定义的工作进程,此函数通常用于创建一个特殊的工作进程,用于监控、上报或者其他特殊的任务。在 Server 启动时会自动创建进程,并执行指定的子进程函数,进程意外退出时,Server 会重新拉起进程。
skills/hyperf/references/zh-cn/quick-start/install.md
- Network accessline 7
[hyperf/hyperf-docker](https://github.com/hyperf/hyperf-docker) 项目内已经为您准备好了各种版本的 Dockerfile ,或直接基于已经构建好的 [hyperf/hyperf](https://hub.docker.com/r/hyperf/hyperf) 镜像来运行。 - Network accessline 11
- PHP >= 8.1 - 以下任一网络引擎 - [Swoole PHP 扩展](https://github.com/swoole/swoole-src) >= 5.0,并关闭了 `Short Name` - Network accessline 12
- 以下任一网络引擎 - [Swoole PHP 扩展](https://github.com/swoole/swoole-src) >= 5.0,并关闭了 `Short Name` - [Swow PHP 扩展](https://github.com/swow/swow) >= 1.4 - Network accessline 13
- [Swoole PHP 扩展](https://github.com/swoole/swoole-src) >= 5.0,并关闭了 `Short Name` - Network accessline 14
- [Swow PHP 扩展](https://github.com/swow/swow) >= 1.4 - Network accessline 24
Hyperf 使用 [Composer](https://getcomposer.org) 来管理项目的依赖,在使用 Hyperf 之前,请确保你的运行环境已经安装好了 Composer。
skills/hyperf/references/zh-cn/quick-start/overview.md
- Network accessline 7
Hyperf 使用 [nikic/fast-route](https://github.com/nikic/FastRoute) 作为默认的路由组件并提供服务,您可以很方便的在 `config/routes.php` 中定义您的路由。 - Network accessline 12
路由的文件位于 [hyperf-skeleton](https://github.com/hyperf/hyperf-skeleton) 项目的 `config/routes.php` ,下面是一些常用的用法示例。 - Network accessline 218
由于 `Hyperf` 内置了协程服务器,也就意味着 `Hyperf` 将以 `CLI` 的形式去运行,所以在定义好路由及实际的逻辑代码之后,我们需要在项目根目录并通过命令行运行 `php bin/hyperf.php start` 来启动服务。 当 `Console` 界面显示服务启动后便可通过 `cURL` 或 浏览器对服务正常发起访问了,默认服务会提供一个首页 `http://127.0.0.1:9501/`,对于本章示例引导的情况下,也就是上面的例子所对应的访问 - Network accessline 219
当 `Console` 界面显示服务启动后便可通过 `cURL` 或 浏览器对服务正常发起访问了,默认服务会提供一个首页 `http://127.0.0.1:9501/`,对于本章示例引导的情况下,也就是上面的例子所对应的访问地址为 `http://127.0.0.1:9501/index/info?id=1`。 - Network accessline 225
> Tips: 您也可以将启动 Server 的命令配置在 IDE 上,便可直接通过 IDE 的 `启动/停止` 操作快捷的完成 `启动服务` 或 `重启服务` 的操作。 > 且非视图开发时可以采用 [TDD(Test-Driven Development)](https://baike.baidu.com/item/TDD/9064369) 测试驱动开发来进行开发,这样不仅可以省略掉服务重启和频繁切换窗口的麻烦,还可保证接口数据的正确性。 - Network accessline 226
> 且非视图开发时可以采用 [TDD(Test-Driven Development)](https://baike.baidu.com/item/TDD/9064369) 测试驱动开发来进行开发,这样不仅可以省略掉服务重启和频繁切换窗口的麻烦,还可保证接口数据的正确性。
skills/hyperf/references/zh-cn/quick-start/questions.md
- Network accessline 57
此问题通常是由于 [zircote/swagger](https://github.com/zircote/swagger-php) 的 3.0.5 版本更新导致, 详情请见 [#834](https://github.com/zircote/swagger-php/issues/834) 。 - Network accessline 58
如果安装了 [hyperf/swagger](https://github.com/hyperf/swagger) 建议将 [zircote/swagger](https://github.com/zircote/swagger-php) 的版本锁定在 3.0.4 - Network accessline 148
- fix aliyun oss wrong charset: https://github.com/aliyun/aliyun-oss-php-sdk/issues/101 - Network accessline 149
- https://github.com/docker-library/php/issues/240#issuecomment-762438977 - Network accessline 150
- https://github.com/docker-library/php/pull/1264 - Network accessline 157
RUN apk --no-cache --allow-untrusted --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ add gnu-libiconv=1.15-r2 - Network accessline 164
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.13/community/ gnu-libiconv=1.15-r3
skills/hyperf/references/zh-cn/reactive-x.md
- Network accessline 3
[hyperf/reactive-x](https://github.com/hyperf/reactive-x) 组件提供了 Swoole/Hyperf 环境下的 ReactiveX 集成。 - Network accessline 7
ReactiveX 是 Reactive Extensions 的缩写,一般简写为 Rx,最初是 LINQ 的一个扩展,由微软的架构师 Erik Meijer 领导的团队开发,在 2012 年 11 月开源,Rx 是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx 库支持.NET、JavaScript 和 C ++,Rx 近几年越来越流行了,现在已经支持几乎全部的流行编程语言了,Rx 的大部分语言库由 ReactiveX 这个组织负责维护,比较流 - Network accessline 13
[Reactivex.io](http://reactivex.io) 给的定义是,Rx 是一个使用可观察数据流进行异步编程的编程接口,ReactiveX 结合了观察者模式、迭代器模式和函数式编程的精华。 - Network accessline 15
> 以上两节摘自[RxDocs](https://github.com/mcxiaoke/RxDocs)。 - Network accessline 247
Swoole 的进程间通讯也是事件驱动的。本组件在 RxPHP 提供的四种 [Subject](https://mcxiaoke.gitbooks.io/rxdocs/content/Subject.html) 基础上额外提供了对应的跨进程 Subject 版本,可以用于在进程间共享信息。 - Network accessline 327
* [Rx 中文文档](https://mcxiaoke.gitbooks.io/rxdocs/content/) - Network accessline 328
* [Rx 英文文档](http://reactivex.io/) - Network accessline 329
* [RxPHP 仓库](https://github.com/ReactiveX/RxPHP)
skills/hyperf/references/zh-cn/redis.md
- Network accessline 42
'max_idle_time' => (float) env('REDIS_MAX_IDLE_TIME', 60), ], 'options' => [ // Redis 客户端 Options, 参照 https://github.com/phpredis/phpredis#setoption - Network accessline 43
], 'options' => [ // Redis 客户端 Options, 参照 https://github.com/phpredis/phpredis#setoption \Redis::OPT_PREFIX => env('REDIS_PREFIX', ''), - Network accessline 44
'options' => [ // Redis 客户端 Options, 参照 https://github.com/phpredis/phpredis#setoption
skills/hyperf/references/zh-cn/request.md
- Network accessline 3
`请求对象(Request)` 是完全基于 [PSR-7](https://www.php-fig.org/psr/psr-7/) 标准实现的,由 [hyperf/http-message](https://github.com/hyperf/http-message) 组件提供实现支持。 - Network accessline 5
> 注意 [PSR-7](https://www.php-fig.org/psr/psr-7/) 标准为 `请求(Request)` 进行了 `immutable 机制` 的设计,所有以 `with` 开头的方法的返回值都是一个新对象,不会修改原对象的值 - Network accessline 98
`Hyperf\HttpServer\Contract\RequestInterface` 除了使用 [PSR-7](https://www.php-fig.org/psr/psr-7/) 标准定义的 `APIs` 之外,还提供了多种方法来检查请求,下面我们提供一些方法的示例: - Network accessline 102
`path()` 方法返回请求的路径信息。也就是说,如果传入的请求的目标地址是 `http://domain.com/foo/bar?baz=1`,那么 `path()` 将会返回 `foo/bar`: - Network accessline 142
[hyperf/http-message](https://github.com/hyperf/http-message) 组件本身是一个实现了 [PSR-7](https://www.php-fig.org/psr/psr-7/) 标准的组件,相关方法都可以通过注入的 `请求对象(Request)` 来调用。 - Network accessline 143
如果注入时声明为 [PSR-7](https://www.php-fig.org/psr/psr-7/) 标准的 `Psr\Http\Message\ServerRequestInterface` 接口,则框架会自动转换为等同于 `Hyperf\HttpServer\Contract\RequestInterface` 的 `Hyperf\HttpServer\Request` 对象。
skills/hyperf/references/zh-cn/response.md
- Network accessline 83
| 参数 | 类型 | 默认值 | 备注 | |:------:|:------:|:------:|:------------------------------------------------------------------------------ - Network accessline 84
|:------:|:------:|:------:|:--------------------------------------------------------------------------------------------------------------:| | toUrl | string | 无 | 如果参数不存在 `http://` 或 `https://` 则根据当前服务的 Host 自动拼接对应的 URL,且根据 `$schema` - Network accessline 85
| toUrl | string | 无 | 如果参数不存在 `http://` 或 `https://` 则根据当前服务的 Host 自动拼接对应的 URL,且根据 `$schema` 参数拼接协议 | - Network accessline 87
| schema | string | http | 当 `$toUrl` 不存在 `http://` 或 `https://` 时生效,仅可传递 `http` 或 `https` |
skills/hyperf/references/zh-cn/router.md
- Network accessline 3
默认情况下路由由 [nikic/fast-route](https://github.com/nikic/FastRoute) 提供支持,并由 [hyperf/http-server](https://github.com/hyperf/http-server) 组件负责接入到 `Hyperf` 中,`RPC` 路由由对应的 [hyperf/rpc-server](https://github.com/hyperf/rpc-server) 组件负责。 - Network accessline 9
在 [hyperf-skeleton](https://github.com/hyperf/hyperf-skeleton) 骨架下,默认在 `config/routes.php` 文件内完成所有的路由定义,当然如果您路由众多,您也可以对该文件进行扩展,以适应您的需求,但 `Hyperf` 还支持 `注解路由`,我们更推荐使用 `注解路由`,特别是在路由众多的情况下。 - Network accessline 24
您可以通过 浏览器 或 `cURL` 命令行来请求 `http://host:port/hello-hyperf` 来访问该路由。
skills/hyperf/references/zh-cn/rpc-multiplex.md
skills/hyperf/references/zh-cn/scout.md
- Network accessline 5
> [hyperf/scout](https://github.com/hyperf/scout) 衍生于 [laravel/scout](https://github.com/laravel/scout),我们对它进行了一些协程化改造,但保持了相同的 API。在这里感谢一下 Laravel 开发组,实现了如此强大好用的组件。本文档部分节选自 Laravel China 社区组织翻译的 Laravel 官方文档。 - Network accessline 71
'index' => null, 'hosts' => [ env('ELASTICSEARCH_HOST', 'http://127.0.0.1:9200'), - Network accessline 72
'hosts' => [ env('ELASTICSEARCH_HOST', 'http://127.0.0.1:9200'), ], - Network accessline 73
env('ELASTICSEARCH_HOST', 'http://127.0.0.1:9200'),
skills/hyperf/references/zh-cn/sdks/wechat.md
skills/hyperf/references/zh-cn/service-register.md
- Network accessline 46
'drivers' => [ 'consul' => [ 'uri' => 'http://127.0.0.1:8500', - Network accessline 47
[Credential-related source omitted] - Network accessline 48
'uri' => 'http://127.0.0.1:8500', - Network accessline 54
], 'nacos' => [ // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port - Network accessline 55
'nacos' => [ // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port // 'url' => '', - Network accessline 56
// nacos server url like https://nacos.hyperf.io, Priority is higher than host:port - Network accessline 101
`protocol` 属性为定义该服务暴露的协议,目前仅支持 `jsonrpc` 和 `jsonrpc-http`,分别对应于 TCP 协议和 HTTP 协议下的两种协议,默认值为 `jsonrpc-http`,这里的值对应在 `Hyperf\Rpc\ProtocolManager` 里面注册的协议的 `key`,这两个本质上都是 JSON RPC 协议,区别在于数据格式化、数据打包、数据传输器等不同。 `server` 属性为绑定该服务类发布所要承载的 `Server - Network accessline 103
`publishTo` 属性为定义该服务所要发布的服务中心,目前仅支持 `consul`、`nacos` 或为空,为空时代表不发布该服务到服务中心去,但也就意味着您需要手动处理服务发现的问题,要使用此功能需安装 [hyperf/service-governance](https://github.com/hyperf/service-governance) 组件及对应的驱动依赖; - Network accessline 147
* This file is part of Hyperf. * * @link https://www.hyperf.io - Network accessline 148
* * @link https://www.hyperf.io * @document https://hyperf.wiki - Network accessline 149
* @link https://www.hyperf.io - Network accessline 150
* @document https://hyperf.wiki - Network accessline 151
* @contact group@hyperf.io * @license https://github.com/hyperf/hyperf/blob/master/LICENSE */ - Network accessline 152
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
skills/hyperf/references/zh-cn/session.md
- Network accessline 3
HTTP 是一种无状态协议,即服务器不保留与客户交易时的任何状态,所以当我们在开发 HTTP Server 应用时,我们通常会通过 Session 来实现多个请求之间用户数据的共享。您可通过 [hyperf/session](https://github.com/hyperf/session) 来实现 Session 的功能。Session 组件当前仅适配了两种储存驱动,分别为 `文件` 和 `Redis`,默认为 `文件` 驱动,在生产环境下,我们强烈建议您使用 `Redi - Network accessline 42
在使用 `Redis` 储存驱动之前,您需要安装 [hyperf/redis](https://github.com/hyperf/redis) 组件。当 `handler` 的值为 `Hyperf\Session\Handler\RedisHandler` 时则表明使用 `Redis` 储存驱动。您可以通过配置 `options.connection` 配置值来调整驱动要使用的 `Redis` 连接,这里的连接与 [hyperf/redis](https://github.
skills/hyperf/references/zh-cn/signal.md
- Network accessline 68
`WorkerStopHandler` 触发后,会在所设置的 [max_wait_time](https://wiki.swoole.com/#/server/setting?id=max_wait_time) 配置时间后,关闭掉当前进程。
skills/hyperf/references/zh-cn/snowflake.md
- Network accessline 27
Hyperf 的 [hyperf/snowflake](https://github.com/hyperf/snowflake) 组件在设计上提供了很好的可扩展性,允许您通过简单的扩展就能实现其它基于 Snowflake 的变体算法。
skills/hyperf/references/zh-cn/socketio-server.md
- Network accessline 95
<script src="https://cdn.bootcdn.net/ajax/libs/socket.io/2.3.0/socket.io.js"></script> - Network accessline 450
location ^~/socket.io/ { # 执行代理访问真实服务器 proxy_pass http://hyperf; - Network accessline 451
# 执行代理访问真实服务器 proxy_pass http://hyperf; proxy_http_version 1.1; - Network accessline 452
proxy_pass http://hyperf;
skills/hyperf/references/zh-cn/summary.md
- Network accessline 19
* [常见问题](zh-cn/quick-start/questions.md) * [编程须知](zh-cn/quick-start/important.md) * [视频教程](https://space.bilibili.com/1176880220/channel/seriesdetail?sid=2121560) - Network accessline 21
* [视频教程](https://space.bilibili.com/1176880220/channel/seriesdetail?sid=2121560) - Network accessline 71
* [Nano](https://github.com/hyperf/nano) - Network accessline 72
* [GoTask](https://github.com/hyperf/gotask)
skills/hyperf/references/zh-cn/support.md
- Network accessline 3
Hyperf 提供了大量便捷的辅助类,这里会列出一些常用的好用的,不会列举所有,可自行查看 [hyperf/support](https://github.com/hyperf/support) 组件的代码获得更多信息。
skills/hyperf/references/zh-cn/swagger.md
- Network accessline 5
如需完整支持的注释列表,请查看[OpenApi\Annotations 命名空间](https://github.com/zircote/swagger-php/blob/master/src/Annotations)或[文档网站](https://zircote.github.io/swagger-php/guide/annotations.html#arrays-and-objects) - Network accessline 134
/> <title>SwaggerUI</title> <link rel="stylesheet" href="https://unpkg.hyperf.wiki/swagger-ui-dist@4.5.0/swagger-ui.css" /> - Network accessline 135
<title>SwaggerUI</title> <link rel="stylesheet" href="https://unpkg.hyperf.wiki/swagger-ui-dist@4.5.0/swagger-ui.css" /> </head> - Network accessline 136
<link rel="stylesheet" href="https://unpkg.hyperf.wiki/swagger-ui-dist@4.5.0/swagger-ui.css" /> - Network accessline 138
<body> <div id="swagger-ui"></div> <script src="https://unpkg.hyperf.wiki/swagger-ui-dist@4.5.0/swagger-ui-bundle.js" crossorigin></script> - Network accessline 139
<div id="swagger-ui"></div> <script src="https://unpkg.hyperf.wiki/swagger-ui-dist@4.5.0/swagger-ui-bundle.js" crossorigin></script> <script src="https://unpkg.hyperf.wiki/swagger-ui-dist@4.5.0/swagger-ui-standalone-preset.js" crossorig - Network accessline 140
<script src="https://unpkg.hyperf.wiki/swagger-ui-dist@4.5.0/swagger-ui-bundle.js" crossorigin></script> - Network accessline 141
<script src="https://unpkg.hyperf.wiki/swagger-ui-dist@4.5.0/swagger-ui-standalone-preset.js" crossorigin></script> - Network accessline 189
/> <title>SwaggerUI</title> <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui.css" /> - Network accessline 190
<title>SwaggerUI</title> <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui.css" /> </head> - Network accessline 191
<link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui.css" /> - Network accessline 193
<body> <div id="swagger-ui"></div> <script src="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui-bundle.js" crossorigin></script> - Network accessline 194
<div id="swagger-ui"></div> <script src="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui-bundle.js" crossorigin></script> <script src="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui-standalone-preset.js" crossorigin></script> - Network accessline 195
<script src="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui-bundle.js" crossorigin></script> - Network accessline 196
<script src="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui-standalone-preset.js" crossorigin></script>
skills/hyperf/references/zh-cn/task.md
- Network accessline 194
如果 Task 机制无法满足性能要求,可以尝试一下 Hyperf 组织下的另一个开源项目[GoTask](https://github.com/hyperf/gotask)。GoTask 通过 Swoole 进程管理功能启动 Go 进程作为 Swoole 主进程边车(Sidecar),利用进程通讯将任务投递给边车处理并接收返回值。可以理解为 Go 版的 Swoole TaskWorker。
skills/hyperf/references/zh-cn/testing.md
- Network accessline 3
在 Hyperf 里测试默认通过 `phpunit` 来实现,并在 3.1 支持了基于 phpunit 的框架 `pest` [文档](https://pestphp.com/docs/installation)。 - Network accessline 59
- `hyperf/testing` 提供了 Trait [RunTestsInCoroutine](https://github.com/hyperf/hyperf/blob/master/src/testing/src/Concerns/RunTestsInCoroutine.php) 。只需在特定的 `Test` 中 use 此类即开启协程环境
skills/hyperf/references/zh-cn/tracer.md
- Network accessline 3
在微服务场景下,我们会拆分出来很多的服务,也就意味着一个业务请求,少则跨越 3-4 个服务,多则几十个甚至更多,在这种架构下我们需要对某一个问题进行 Debug 的时候是极其困难的一件事情,那么我们就需要一个调用链追踪系统来帮助我们动态地展示服务调用的链路,以便我们可以快速地对问题点进行定位,亦可根据链路信息对服务进行调优。 在 `Hyperf` 里我们提供了 [hyperf/tracer](https://github.com/hyperf/tracer) 组件来对各 - Network accessline 4
在 `Hyperf` 里我们提供了 [hyperf/tracer](https://github.com/hyperf/tracer) 组件来对各个跨网络请求来进行调用的追踪以及分析,目前根据 [OpenTracing](https://opentracing.io) 协议对接了 [Zipkin](https://zipkin.io/) 系统和 [Jaeger](https://www.jaegertracing.io/) 系统,用户也可以根据 OpenTracing 协议定 - Network accessline 14
[hyperf/tracer](https://github.com/hyperf/tracer) 组件默认安装了 [Zipkin](https://zipkin.io/) 相关依赖。如果要使用 [Jaeger](https://www.jaegertracing.io/),还需要执行下面的命令安装对应的依赖: - Network accessline 113
'options' => [ // Zipkin 服务的 endpoint 地址 'endpoint_url' => env('ZIPKIN_ENDPOINT_URL', 'http://localhost:9411/api/v2/spans'), - Network accessline 114
// Zipkin 服务的 endpoint 地址 'endpoint_url' => env('ZIPKIN_ENDPOINT_URL', 'http://localhost:9411/api/v2/spans'), // 请求超时秒数 - Network accessline 115
'endpoint_url' => env('ZIPKIN_ENDPOINT_URL', 'http://localhost:9411/api/v2/spans'), - Network accessline 165
关于 Jaeger 的更多配置可以在 [[这里](https://github.com/jonahgeorge/jaeger-client-php)] 查看。 - Network accessline 265
当我们在使用阿里云的链路追踪服务时,由于对端也是支持 `Zipkin` 的协议的,故可以直接通过在 `config/autoload/opentracing.php` 配置文件内修改 `endpoint_url` 的值为您对应的阿里云 `region` 的地址,具体地址可在阿里云的链路追踪服务内得到,更多细节可参考 [阿里云链路追踪服务帮助文档](https://help.aliyun.com/document_detail/100031.html?spm=a2c4g.111 - Network accessline 273
- [Opentracing](https://opentracing.io) - Network accessline 274
- [Zipkin](https://zipkin.io/) - Network accessline 275
- [Jaeger](https://www.jaegertracing.io/) - Network accessline 276
- [Dapper, 大规模分布式系统的跟踪系统](https://bigbully.github.io/Dapper-translation/)
skills/hyperf/references/zh-cn/tutorial/aliyun-logger.md
skills/hyperf/references/zh-cn/tutorial/daocloud.md
- Network accessline 7
[DaoCloud](https://dashboard.daocloud.io) - Network accessline 17
这里我以 [hyperf-demo](https://github.com/limingxinleo/hyperf-demo) 仓库为例配置。当创建成功后,在对应 `Github 仓库` 的 `WebHooks` 下面就会有对应的 url。 - Network accessline 19
接下来我们修改一下仓库里的 `Dockerfile`,在 `apk add` 下面增加 `&& apk add wget \`。这里具体原因不是很清楚,如果不更新 `wget`, 使用时就会有问题。但是自建 Gitlab CI 就没有任何问题。 - Network accessline 44
$ curl http://127.0.0.1:9501
skills/hyperf/references/zh-cn/tutorial/docker-swarm.md
- Dangerous shell operationline 8
curl -sSL https://get.docker.com/ | sh - Network accessline 8
curl -sSL https://get.docker.com/ | sh - Network accessline 27
基于跨国线路访问速度过慢等问题,我们可以为 Docker 配置仓库镜像地址,来改善这些网络问题,如 [阿里云(Aliyun) Docker 镜像加速器](https://help.aliyun.com/document_detail/60750.html),我们可以申请一个 `Docker` 加速器,然后配置到服务器上的 `/etc/docker/daemon.json` 文件,添加以下内容,然后重启 `Docker`,下面的地址请填写您自己获得的加速器地址。 - Network accessline 30
{"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]} - Dangerous shell operationline 64
sudo docker run -d --hostname gitlab.xxx.cn \ - Network accessline 82
我们以 `CentOS` 的的安装方式为例,其余可参考 [Gitlab 官网文档](https://docs.gitlab.com/runner/install/linux-repository.html) - Dangerous shell operationline 85
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash - Network accessline 85
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash - Dangerous shell operationline 89
当然,也可以用 `curl https://setup.ius.io | sh` 命令,更新为最新的 `git` 源,然后直接使用 yum 安装 git 和 gitlab-runner。 - Network accessline 89
当然,也可以用 `curl https://setup.ius.io | sh` 命令,更新为最新的 `git` 源,然后直接使用 yum 安装 git 和 gitlab-runner。 - Dangerous shell operationline 92
$ curl https://setup.ius.io | sh - Network accessline 92
$ curl https://setup.ius.io | sh - Network accessline 100
通过 `gitlab-runner register --clone-url http://your-ip/` 命令来将 gitlab-runner 注册到 Gitlab 上,注意要替换 `your-ip` 为您的 Gitlab 的内网 IP,如下: - Dangerous shell operationline 103
$ sudo gitlab-runner register --clone-url http://your-ip/ - Network accessline 103
$ sudo gitlab-runner register --clone-url http://your-ip/ - Network accessline 105
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): - Network accessline 106
http://gitlab.xxx.cc/ - Dangerous shell operationline 126
- 免 sudo 执行 docker 的权限 - Dangerous shell operationline 129
sudo usermod -aG docker gitlab-runner - Dangerous shell operationline 195
docker network rm ingress - Network accessline 238
[Portainer](https://github.com/portainer/portainer) - Network accessline 275
登录 Gitlab 创建一个 Demo 项目。并导入我们的项目 [hyperf-skeleton](https://github.com/hyperf/hyperf-skeleton) - Access to secretsline 325
[Credential-related source omitted] - Network accessline 360
curl http://127.0.0.1:9501/ - Network accessline 365
通常情况下,Docker Swarm 集群是不会直接对外暴露提供访问的,所以我们可以在上层构建一个网关服务,这里推荐使用 `KONG` 作为网关。 还有另外一个原因是 Docker Swarm 的 `Ingress 网络` 存在设计的缺陷,在连接不复用的情况下,会有并发瓶颈,具体细节请查看对应的 `Issue` [#35082](https://github.com/moby/moby/issues/35082) - Network accessline 366
还有另外一个原因是 Docker Swarm 的 `Ingress 网络` 存在设计的缺陷,在连接不复用的情况下,会有并发瓶颈,具体细节请查看对应的 `Issue` [#35082](https://github.com/moby/moby/issues/35082) - Network accessline 421
docker run --rm --network=default-network -p 8080:8080 -d --name kong-dashboard pgbi/kong-dashboard start \ --kong-url http://kong:8001 \ - Network accessline 422
--kong-url http://kong:8001 \ - Access to secretsline 440
[Credential-related source omitted] - Network accessline 457
failovermethod=priority gpgcheck=0 gpgkey=http://mirrors.tencentyun.com/epel/RPM-GPG-KEY-EPEL-7 - Network accessline 458
gpgcheck=0 gpgkey=http://mirrors.tencentyun.com/epel/RPM-GPG-KEY-EPEL-7 enabled=1 - Network accessline 459
gpgkey=http://mirrors.tencentyun.com/epel/RPM-GPG-KEY-EPEL-7 - Network accessline 460
enabled=1 baseurl=https://mirrors.tencent.com/tlinux/2.4/tlinux/x86_64/ EOF - Network accessline 461
baseurl=https://mirrors.tencent.com/tlinux/2.4/tlinux/x86_64/ - Dangerous shell operationline 474
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg - Dangerous shell operationline 504
$ curl https://setup.ius.io | sh - Network accessline 504
$ curl https://setup.ius.io | sh - Dangerous shell operationline 566
curl -sSL https://get.docker.com/ | sh - Network accessline 566
curl -sSL https://get.docker.com/ | sh - Dangerous shell operationline 594
docker network rm ingress - Network accessline 645
[阿里云](https://cr.console.aliyun.com/cn-shanghai/instances) - Access to secretsline 689
[Credential-related source omitted] - Access to secretsline 692
[Credential-related source omitted] - Access to secretsline 698
[Credential-related source omitted] - Network accessline 717
到三台机器上,全部进行 curl 测试,如果都能返回对应数据,代表服务启动成功 - Network accessline 720
curl http://127.0.0.1:9501/
skills/hyperf/references/zh-cn/tutorial/nginx.md
- Network accessline 3
[Nginx](http://nginx.org/) 是一个高性能的 `HTTP` 和反向代理服务器,代码完全用 `C` 实现,基于它的高性能以及诸多优点,我们可以把它设置为 `hyperf` 的前置服务器,实现负载均衡或 HTTPS 前置服务器等。 - Network accessline 30
# 执行代理访问真实服务器 proxy_pass http://hyperf; - Network accessline 31
proxy_pass http://hyperf; - Network accessline 66
# 执行代理访问真实服务器 proxy_pass http://hyperf_websocket; - Network accessline 67
proxy_pass http://hyperf_websocket;
skills/hyperf/references/zh-cn/tutorial/supervisor.md
- Network accessline 3
[Supervisor](http://www.supervisord.org/) 是 `Linux/Unix` 系统下的一个进程管理工具。可以很方便的监听、启动、停止和重启一个或多个进程。通过 [Supervisor](http://www.supervisord.org/) 管理的进程,当进程意外被 `Kill` 时,[Supervisor](http://www.supervisord.org/) 会自动将它重启,可以很方便地做到进程自动恢复的目的,而无需自己编写 `s - Network accessline 46
!> 建议同时增大配置文件中的 `minfds` 配置项,默认为 `1024`。同时也应该修改系统的 [ulimit](https://wiki.swoole.com/#/other/sysctl?id=ulimit-%e8%ae%be%e7%bd%ae),防止出现 `Failed to open stream: Too many open files` 的问题。
skills/hyperf/references/zh-cn/upgrade/1.1.md
- Network accessline 19
参考:[入口文件参考](https://github.com/hyperf/hyperf-skeleton/blob/70062b7bbf29e23cda2f30680e02aa3b26ebd6f7/bin/hyperf.php#L11) [单测入口文件参考](https://github.com/hyperf/hyperf-skeleton/blob/70062b7bbf29e23cda2f30680e02aa3b26ebd6f7/test/bootstrap.php#L2 - Network accessline 144
如果您在之前有使用 [hyperf/translation](https://github.com/hyperf/translation) 组件,那么您需要检查一下 `config/autoload/translation.php` 文件内的 `locale` 配置项,如为 `zh-CN`,则需要改为 `zh_CN`,在 1.1 版本,我们统一了这个配置的值。 - Network accessline 156
如您在升级上或升级后遇到任何的问题,请前往 [Github Issue](https://github.com/hyperf/hyperf/issues) 提交您的 issue,说明您遇到的问题,我们会尽快帮助您解决。
skills/hyperf/references/zh-cn/upgrade/2.0.md
- Network accessline 7
2.0 版本将最低的 Swoole 版本要求从 4.4+ 提升到了 4.5+,这两个版本之间有一些使用上的细节差异,Hyperf 在较早的版本便已适配了这里版本差异,您可无需理会这里的差异细节,提升 Swoole 版本到 4.5+ 主要是减少历史包袱对 Hyperf 造成的长期影响。您可通过执行 `php --ri swoole` 来查看当前环境中的 Swoole 版本,您可根据 [Swoole 文档](https://wiki.swoole.com/#/environmen - Dangerous shell operationline 67
因为 2.0 版本 AOP 底层逻辑的调整,故移除了 `init-proxy.sh` 脚本,所以需要您从 `composer.json` 中去掉 `scripts.post-autoload-dump` 内的 `"init-proxy.sh"` 执行语句,并修改 `post-autoload-dump` 内的命令为 `rm -rf runtime/container` 语句。 - Access to secretsline 73
[Credential-related source omitted] - Dangerous shell operationline 76
"rm -rf runtime/container" - Network accessline 258
如您在升级上或升级后遇到任何的问题,请前往 [Github Issue](https://github.com/hyperf/hyperf/issues) 提交您的 issue,说明您遇到的问题,我们会尽快帮助您解决。
skills/hyperf/references/zh-cn/upgrade/2.1.md
- Network accessline 3
- 2.1 版本主要增加了底层驱动 [hyperf/engine](https://github.com/hyperf/engine),允许 `Hyperf` 框架跑在 `Swoole` 或 `Swow` 之上。
skills/hyperf/references/zh-cn/upgrade/2.2.md
- Network accessline 212
[CHANGED](https://github.com/hyperf/hyperf/blob/2.2/CHANGELOG-2.2.md#changed)
skills/hyperf/references/zh-cn/upgrade/3.1.md
- Network accessline 14
1. 确定程序中没有加载会导致函数冲突的包,可以选择直接安装 `hyperf/helper` 即可,`helper` 包中提供不包含命名空间的助手函数,与原有 `utils` 中一致 2. 在原有调用助手函数的地方增加命名空间,可以使用 `rector` 进行重构,参考[重构文档](https://github.com/orgs/hyperf/discussions/5635) - Network accessline 15
2. 在原有调用助手函数的地方增加命名空间,可以使用 `rector` 进行重构,参考[重构文档](https://github.com/orgs/hyperf/discussions/5635)
skills/hyperf/references/zh-cn/validation.md
- Network accessline 5
> [hyperf/validation](https://github.com/hyperf/validation) 衍生于 [illuminate/validation](https://github.com/illuminate/validation),我们对它进行了一些改造,但保持了验证规则的相同。在这里感谢一下 Laravel 开发组,实现了如此强大好用的验证器组件。 - Network accessline 51
由于存在多语言的功能,故该组件依赖 [hyperf/translation](https://github.com/hyperf/translation) 组件,如您未曾添加过 Translation 组件的配置文件,请先执行下面的命令来发布 Translation 组件的配置文件,如您已经发布过或手动添加过,只需发布验证器组件的语言文件即可: - Network accessline 891
尽管你只是指定了扩展名,该规则实际上验证的是通过读取文件内容获取到的文件 `MIME` 类型。 完整的 `MIME` 类型列表及其相应的扩展可以在这里找到:[mime types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - Network accessline 892
完整的 `MIME` 类型列表及其相应的扩展可以在这里找到:[mime types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types)
skills/hyperf/references/zh-cn/view-engine.md
- Network accessline 42
> 本使用教程大量借鉴于 [LearnKu](https://learnku.com),十分感谢 LearnKu 对 PHP 社区做出的贡献。
skills/hyperf/references/zh-cn/view.md
- Network accessline 3
视图组件由 [hyperf/view](https://github.com/hyperf/view) 实现并提供使用,满足您对视图渲染的需求,组件默认支持 `Blade` 、 `Smarty` 、 `Twig` 、 `Plates` 和 `ThinkTemplate` 五种模板引擎。 - Network accessline 52
使用 `Task` 模式时,需引入 [hyperf/task](https://github.com/hyperf/task) 组件且必须配置 `task_enable_coroutine` 为 `false`,否则会出现协程数据混淆的问题,更多请查阅 [Task](zh-cn/task.md) 组件文档。 - Network accessline 78
官方目前支持 `Blade` 、 `Smarty` 、 `Twig` 、 `Plates` 和 `ThinkTemplate` 五种模板,默认安装 [hyperf/view](https://github.com/hyperf/view) 时不会自动安装任何模板引擎,需要您根据自身需求,自行安装对应的模板引擎,使用前必须安装任一模板引擎。
skills/hyperf/references/zh-cn/watcher.md
- Network accessline 58
wget https://github.com/emcrisostomo/fswatch/releases/download/1.14.0/fswatch-1.14.0.tar.gz \
skills/hyperf/references/zh-cn/websocket-client.md
- Network accessline 3
Hyperf 提供了对 WebSocket Client 的封装,可基于 [hyperf/websocket-client](https://github.com/hyperf/websocket-client) 组件对 WebSocket Server 进行访问;
skills/hyperf/references/zh-cn/websocket-server.md
- Network accessline 3
Hyperf 提供了对 WebSocket Server 的封装,可基于 [hyperf/websocket-server](https://github.com/hyperf/websocket-server) - Network accessline 89
if($frame->opcode == Opcode::PING) { // 如果使用协程 Server,在判断是 PING 帧后,需要手动处理,返回 PONG 帧。 // 异步风格 Server,可以直接通过 Swoole 配置处理,详情请见 https://wiki.swoole.com/#/websocket_server?id=open_websocket_ping_frame - Network accessline 90
// 如果使用协程 Server,在判断是 PING 帧后,需要手动处理,返回 PONG 帧。 // 异步风格 Server,可以直接通过 Swoole 配置处理,详情请见 https://wiki.swoole.com/#/websocket_server?id=open_websocket_ping_frame $response->push(new Frame(opcode: Opcode::PONG)); - Network accessline 91
// 异步风格 Server,可以直接通过 Swoole 配置处理,详情请见 https://wiki.swoole.com/#/websocket_server?id=open_websocket_ping_frame - Network accessline 125
因为 Swoole\WebSocket\Server 继承自 Swoole\Http\Server,可以使用 HTTP 触发所有 WebSocket 的推送,了解详情可查看 [Swoole 文档](https://wiki.swoole.com/#/websocket_server?id=websocketserver) onRequest 回调部分。 - Network accessline 126
的推送,了解详情可查看 [Swoole 文档](https://wiki.swoole.com/#/websocket_server?id=websocketserver) onRequest 回调部分。 - Network accessline 202
# proxy_http_version 1.1; # 转发到多个 ws server proxy_pass http://io_nodes; - Network accessline 203
# 转发到多个 ws server proxy_pass http://io_nodes; } - Network accessline 204
proxy_pass http://io_nodes;
skills/laravel12/references/ai-sdk.md
- Network accessline 46
The [Laravel AI SDK](https://github.com/laravel/ai) provides a unified, expressive API for interacting with AI providers such as OpenAI, Anthropic, Gemini, and more. With the AI SDK, you can build intelligent agents with tools and structure - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Network accessline 453
You may stream the events using the [Vercel AI SDK stream protocol](https://ai-sdk.dev/docs/ai-sdk-ui/stream-protocol) by invoking the `usingVercelDataProtocol` method on the streamable response: - Network accessline 958
Files\Image::fromStorage('photo.jpg'), // Files\Image::fromPath('/home/laravel/photo.jpg'), // Files\Image::fromUrl('https://example.com/photo.jpg'), - Network accessline 959
// Files\Image::fromPath('/home/laravel/photo.jpg'), // Files\Image::fromUrl('https://example.com/photo.jpg'), // $request->file('photo'), - Network accessline 960
// Files\Image::fromUrl('https://example.com/photo.jpg'), - Network accessline 1314
// Store a file that is stored on a remote URL... $response = Document::fromUrl('https://example.com/document.pdf')->put(); - Network accessline 1315
$response = Document::fromUrl('https://example.com/document.pdf')->put(); - Network accessline 1316
$response = Image::fromUrl('https://example.com/photo.jpg')->put();
skills/laravel12/references/ai.md
- Network accessline 16
Laravel is uniquely positioned to be the best framework for AI assisted and agentic development. The rise of AI coding agents like [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [OpenCode](https://opencode.ai), [Cursor](http - Network accessline 28
[Laravel Boost](https://github.com/laravel/boost) bridges the gap between AI coding agents and your Laravel application. Boost is an MCP (Model Context Protocol) server equipped with over 15 specialized tools that provide AI agents with dee - Network accessline 95
[Agent Skills](https://agentskills.io/home) are lightweight, targeted knowledge modules that agents can activate on-demand when working on specific domains. Unlike guidelines, which are loaded upfront, skills allow detailed patterns and bes
skills/laravel12/references/artisan.md
- Network accessline 54
[Laravel Tinker](https://github.com/laravel/tinker) is a powerful REPL for the Laravel framework, powered by the [PsySH](https://github.com/bobthecow/psysh) package. - Network accessline 65
> [!NOTE] > Looking for hot reloading, multiline code editing, and autocompletion when interacting with your Laravel application? Check out [Tinkerwell](https://tinkerwell.app)! - Network accessline 66
> Looking for hot reloading, multiline code editing, and autocompletion when interacting with your Laravel application? Check out [Tinkerwell](https://tinkerwell.app)! - Network accessline 743
> [!NOTE] > For more advanced options, check out the [Symfony Progress Bar component documentation](https://symfony.com/doc/current/components/console/helpers/progressbar.html). - Network accessline 744
> For more advanced options, check out the [Symfony Progress Bar component documentation](https://symfony.com/doc/current/components/console/helpers/progressbar.html).
skills/laravel12/references/authentication.md
- Network accessline 58
If your application is not using Eloquent, you may use the `database` authentication provider which uses the Laravel query builder. If your application is using MongoDB, check out MongoDB's official [Laravel user authentication documentatio - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Network accessline 245
We will access Laravel's authentication services via the `Auth` [facade](/docs/{{version}}/facades), so we'll need to make sure to import the `Auth` facade at the top of the class. Next, let's check out the `attempt` method. The `attempt` m - Network accessline 423
[HTTP Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) provides a quick way to authenticate users of your application without setting up a dedicated "login" page. To get started, attach the `auth.basic` [midd - Network accessline 436
If you are using [PHP FastCGI](https://www.php.net/manual/en/install.fpm.php) and Apache to serve your Laravel application, HTTP Basic authentication may not work correctly. To correct these problems, the following lines may be added to you
skills/laravel12/references/billing.md
- Network accessline 77
[Laravel Cashier Stripe](https://github.com/laravel/cashier-stripe) provides an expressive, fluent interface to [Stripe's](https://stripe.com) subscription billing services. It handles almost all of the boilerplate subscription billing code - Network accessline 82
When upgrading to a new version of Cashier, it's important that you carefully review [the upgrade guide](https://github.com/laravel/cashier-stripe/blob/16.x/UPGRADE.md). - Network accessline 118
> [!WARNING] > Stripe recommends that any column used for storing Stripe identifiers should be case-sensitive. Therefore, you should ensure the column collation for the `stripe_id` column is set to `utf8_bin` when using MySQL. More informat - Network accessline 119
> Stripe recommends that any column used for storing Stripe identifiers should be case-sensitive. Therefore, you should ensure the column collation for the `stripe_id` column is set to `utf8_bin` when using MySQL. More information regarding - Network accessline 179
In addition to configuring Cashier's currency, you may also specify a locale to be used when formatting money values for display on invoices. Internally, Cashier utilizes [PHP's `NumberFormatter` class](https://www.php.net/manual/en/class.n - Network accessline 191
Thanks to [Stripe Tax](https://stripe.com/tax), it's possible to automatically calculate taxes for all invoices generated by Stripe. You can enable automatic tax calculation by invoking the `calculateTaxes` method in the `boot` method of yo - Network accessline 259
Offering product and subscription billing via your application can be intimidating. However, thanks to Cashier and [Stripe Checkout](https://stripe.com/payments/checkout), you can easily build modern, robust payment integrations. - Network accessline 281
As you can see in the example above, we will utilize Cashier's provided `checkout` method to redirect the customer to Stripe Checkout for a given "price identifier". When using Stripe, "prices" refer to [defined prices for specific products - Network accessline 344
Please refer to Stripe's documentation for more information on the [data contained by the Checkout session object](https://stripe.com/docs/api/checkout/sessions/object). - Network accessline 352
Offering product and subscription billing via your application can be intimidating. However, thanks to Cashier and [Stripe Checkout](https://stripe.com/payments/checkout), you can easily build modern, robust payment integrations. - Network accessline 439
Of course, customers may want to change their subscription plan to another product or "tier". The easiest way to allow this is by directing customers to Stripe's [Customer Billing Portal](https://stripe.com/docs/no-code/customer-portal), wh - Network accessline 485
Once the customer has been created in Stripe, you may begin a subscription at a later date. You may provide an optional `$options` array to pass in any additional [customer creation parameters that are supported by the Stripe API](https://s - Network accessline 506
Occasionally, you may wish to update the Stripe customer directly with additional information. You may accomplish this using the `updateStripeCustomer` method. This method accepts an array of [customer update options supported by the Stripe - Network accessline 551
Cashier offers an easy way to manage a customer's tax IDs. For example, the `taxIds` method may be used to retrieve all of the [tax IDs](https://stripe.com/docs/api/customer_tax_ids/object) that are assigned to a customer as a collection: - Network accessline 563
You may create a new Tax ID by providing a valid [type](https://stripe.com/docs/api/customer_tax_ids/object#tax_id_object-type) and value to the `createTaxId` method: - Network accessline 569
The `createTaxId` method will immediately add the VAT ID to the customer's account. [Verification of VAT IDs is also done by Stripe](https://stripe.com/docs/invoicing/customer/tax-ids#validation); however, this is an asynchronous process. Y - Network accessline 615
Similarly, you may override the `stripeEmail`, `stripePhone` (20 character maximum), `stripeAddress`, and `stripePreferredLocales` methods. These methods will sync information to their corresponding customer parameters when [updating the St - Network accessline 620
Stripe offers [an easy way to set up a billing portal](https://stripe.com/docs/billing/subscriptions/customer-portal) so that your customer can manage their subscription, payment methods, and view their billing history. You can redirect you - Access to secretsline 673
[Credential-related source omitted] - Network accessline 678
Next, the Stripe.js library may be used to attach a [Stripe Element](https://stripe.com/docs/stripe-js) to the form and securely gather the customer's payment details: - Network accessline 681
<script src="https://js.stripe.com/v3/"></script> - Network accessline 693
Next, the card can be verified and a secure "payment method identifier" can be retrieved from Stripe using [Stripe's `confirmCardSetup` method](https://stripe.com/docs/js/setup_intents/confirm_card_setup): - Network accessline 720
> [!NOTE] > If you would like more information about Setup Intents and gathering customer payment details please [review this overview provided by Stripe](https://stripe.com/docs/payments/save-and-reuse#php). - Network accessline 721
> If you would like more information about Setup Intents and gathering customer payment details please [review this overview provided by Stripe](https://stripe.com/docs/payments/save-and-reuse#php). - Network accessline 739
After defining such a form, the Stripe.js library may be used to attach a [Stripe Element](https://stripe.com/docs/stripe-js) to the form and securely gather the customer's payment details: - Network accessline 742
<script src="https://js.stripe.com/v3/"></script> - Network accessline 754
Next, the card can be verified and a secure "payment method identifier" can be retrieved from Stripe using [Stripe's `createPaymentMethod` method](https://stripe.com/docs/stripe-js/reference#stripe-create-payment-method): - Network accessline 940
If you would like to set a specific [quantity](https://stripe.com/docs/billing/subscriptions/quantities) for the price when creating the subscription, you should invoke the `quantity` method on the subscription builder before creating the s - Network accessline 951
If you would like to specify additional [customer](https://stripe.com/docs/api/customers/create) or [subscription](https://stripe.com/docs/api/subscriptions/create) options supported by Stripe, you may do so by passing them as the second an - Network accessline 972
Or, if you would like to apply a [Stripe promotion code](https://stripe.com/docs/billing/subscriptions/discounts/codes), you may use the `withPromotionCode` method: - Network accessline 1032
For more info on this subject, please consult the Stripe documentation regarding [coupons](https://stripe.com/docs/billing/subscriptions/coupons) and [promotion codes](https://stripe.com/docs/billing/subscriptions/coupons/codes). - Network accessline 1279
For more information on subscription proration, consult the [Stripe documentation](https://stripe.com/docs/billing/subscriptions/prorations). - Network accessline 1317
For more information on subscription quantities, consult the [Stripe documentation](https://stripe.com/docs/subscriptions/quantities). - Network accessline 1331
[Subscription with multiple products](https://stripe.com/docs/billing/subscriptions/multiple-products) allow you to assign multiple billing products to a single subscription. For example, imagine you are building a customer service "helpdes - Network accessline 1511
[Usage based billing](https://stripe.com/docs/billing/subscriptions/metered-billing) allows you to charge customers based on their product usage during a billing cycle. For example, you may charge customers based on the number of text messa - Network accessline 1513
To start using usage billing, you will first need to create a new product in your Stripe dashboard with a [usage based billing model](https://docs.stripe.com/billing/subscriptions/usage-based/implementation-guide) and a [meter](https://docs - Network accessline 1569
Please refer to Stripe's [Meter Event Summary object documentation](https://docs.stripe.com/api/billing/meter-event_summary/object) for more information on meter event summaries. - Network accessline 1571
To [list all meters](https://docs.stripe.com/api/billing/meter/list), you may use a `Billable` instance's `meters` method: - Network accessline 1585
To specify the tax rates a user pays on a subscription, you should implement the `taxRates` method on your billable model and return an array containing the Stripe tax rate IDs. You can define these tax rates in [your Stripe dashboard](http - Network accessline 1668
For more information on managing subscription billing cycles, consult the [Stripe billing cycle documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle) - Network accessline 1873
> [!NOTE] > You may use [the Stripe CLI](https://stripe.com/docs/stripe-cli) to help test webhooks during local development. - Network accessline 1874
> You may use [the Stripe CLI](https://stripe.com/docs/stripe-cli) to help test webhooks during local development. - Network accessline 1900
php artisan cashier:webhook --url "https://example.com/stripe/webhook" - Network accessline 1965
To secure your webhooks, you may use [Stripe's webhook signatures](https://stripe.com/docs/webhooks/signatures). For convenience, Cashier automatically includes a middleware which validates that the incoming Stripe webhook request is valid. - Network accessline 1989
The `charge` method accepts an array as its third argument, allowing you to pass any options you wish to the underlying Stripe charge creation. More information regarding the options available to you when creating charges may be found in th - Access to secretsline 2071
[Credential-related source omitted] - Network accessline 2075
After creating the payment intent, you can return the client secret to your application's frontend so that the user can complete the payment in their browser. To read more about building entire payment flows using Stripe payment intents, pl - Access to secretsline 2087
[Credential-related source omitted] - Network accessline 2203
'phone' => '+32 499 00 00 00', 'email' => 'info@example.com', 'url' => 'https://example.com', - Network accessline 2204
'email' => 'info@example.com', 'url' => 'https://example.com', 'vendorVat' => 'BE123456789', - Network accessline 2205
'url' => 'https://example.com', - Network accessline 2219
Cashier also makes it possible to use a custom invoice renderer. By default, Cashier uses the `DompdfInvoiceRenderer` implementation, which utilizes the [dompdf](https://github.com/dompdf/dompdf) PHP library to generate Cashier's invoices. - Network accessline 2235
return Http::get('https://example.com/html-to-pdf', ['html' => $html])->get()->body(); - Network accessline 2245
Cashier Stripe also provides support for [Stripe Checkout](https://stripe.com/payments/checkout). Stripe Checkout takes the pain out of implementing custom pages to accept payments by providing a pre-built, hosted payment page. - Network accessline 2247
The following documentation contains information on how to get started using Stripe Checkout with Cashier. To learn more about Stripe Checkout, you should also consider reviewing [Stripe's own documentation on Checkout](https://stripe.com/d - Network accessline 2309
By default, Stripe Checkout does not allow [user redeemable promotion codes](https://stripe.com/docs/billing/subscriptions/discounts/codes). Luckily, there's an easy way to enable these for your Checkout page. To do so, you may invoke the ` - Network accessline 2383
> [!WARNING] > Unfortunately Stripe Checkout does not support all subscription billing options when starting subscriptions. Using the `anchorBillingCycleOn` method on the subscription builder, setting proration behavior, or setting payment - Network accessline 2384
> Unfortunately Stripe Checkout does not support all subscription billing options when starting subscriptions. Using the `anchorBillingCycleOn` method on the subscription builder, setting proration behavior, or setting payment behavior will - Network accessline 2451
After a guest checkout has been completed, Stripe can dispatch a `checkout.session.completed` webhook event, so make sure to [configure your Stripe webhook](https://dashboard.stripe.com/webhooks) to actually send this event to your applicat - Network accessline 2489
Alternatively, you could allow Stripe to handle the payment confirmation for you. In this case, instead of redirecting to the payment confirmation page, you may [setup Stripe's automatic billing emails](https://dashboard.stripe.com/account/ - Network accessline 2536
You may consult the [Stripe API documentation](https://stripe.com/docs/api/payment_intents/confirm) to review all of the options accepted when confirming payments. - Network accessline 2543
> [!WARNING] > Before getting started, review [Stripe's guide on PSD2 and SCA](https://stripe.com/guides/strong-customer-authentication) as well as their [documentation on the new SCA APIs](https://stripe.com/docs/strong-customer-authentica - Network accessline 2544
> Before getting started, review [Stripe's guide on PSD2 and SCA](https://stripe.com/guides/strong-customer-authentication) as well as their [documentation on the new SCA APIs](https://stripe.com/docs/strong-customer-authentication). - Access to secretsline 2611
[Credential-related source omitted] - Network accessline 2616
> [!NOTE] > In order to test a variety of billing scenarios, such as credit card denials and failures, you may use the vast range of [testing card numbers and tokens](https://stripe.com/docs/testing) provided by Stripe. - Network accessline 2617
> In order to test a variety of billing scenarios, such as credit card denials and failures, you may use the vast range of [testing card numbers and tokens](https://stripe.com/docs/testing) provided by Stripe.
skills/laravel12/references/blade.md
- Network accessline 65
Want to take your Blade templates to the next level and build dynamic interfaces with ease? Check out [Laravel Livewire](https://livewire.laravel.com). Livewire allows you to write Blade components that are augmented with dynamic functional - Network accessline 1911
When using frontend frameworks such as [Turbo](https://turbo.hotwired.dev/) and [htmx](https://htmx.org/), you may occasionally need to only return a portion of a Blade template within your HTTP response. Blade "fragments" allow you to do j - Network accessline 1998
If you attempt to "echo" an object using Blade, the object's `__toString` method will be invoked. The [__toString](https://www.php.net/manual/en/language.oop5.magic.php#object.tostring) method is one of PHP's built-in "magic methods". Howev
skills/laravel12/references/boost.md
- Network accessline 239
[Agent Skills](https://agentskills.io/home) are lightweight, targeted knowledge modules that agents can activate on-demand when working on specific domains. Unlike guidelines, which are loaded upfront, skills allow detailed patterns and bes - Network accessline 286
Boost Skills support the [Agent Skills format](https://agentskills.io/what-are-skills) and should be structured as a folder containing a `SKILL.md` file with YAML frontmatter and Markdown instructions. The `SKILL.md` file must include requi - Network accessline 377
For an example implementation, see [ClaudeCode.php](https://github.com/laravel/boost/blob/main/src/Install/Agents/ClaudeCode.php).
skills/laravel12/references/broadcasting.md
- Network accessline 58
By default, Laravel includes three server-side broadcasting drivers for you to choose from: [Laravel Reverb](https://reverb.laravel.com), [Pusher Channels](https://pusher.com/channels), and [Ably](https://ably.com). - Network accessline 74
Laravel supports several broadcast drivers out of the box: [Laravel Reverb](/docs/{{version}}/reverb), [Pusher Channels](https://pusher.com/channels), [Ably](https://ably.com), and a `log` driver for local development and debugging. Additio - Network accessline 162
> [!NOTE] > The documentation below discusses how to use Ably in "Pusher compatibility" mode. However, the Ably team recommends and maintains a broadcaster and Echo client that is able to take advantage of the unique capabilities offered by - Network accessline 163
> The documentation below discusses how to use Ably in "Pusher compatibility" mode. However, the Ably team recommends and maintains a broadcaster and Echo client that is able to take advantage of the unique capabilities offered by Ably. For - Network accessline 165
To quickly enable support for Laravel's broadcasting features while using [Ably](https://ably.com) as your event broadcaster, invoke the `install:broadcasting` Artisan command with the `--ably` option. This Artisan command will prompt you f - Network accessline 202
[Laravel Echo](https://github.com/laravel/echo) is a JavaScript library that makes it painless to subscribe to channels and listen for events broadcast by your server-side broadcasting driver. - Access to secretsline 225
[Credential-related source omitted] - Access to secretsline 239
[Credential-related source omitted] - Access to secretsline 253
[Credential-related source omitted] - Network accessline 274
[Laravel Echo](https://github.com/laravel/echo) is a JavaScript library that makes it painless to subscribe to channels and listen for events broadcast by your server-side broadcasting driver. - Access to secretsline 297
[Credential-related source omitted] - Access to secretsline 308
[Credential-related source omitted] - Access to secretsline 323
[Credential-related source omitted] - Access to secretsline 345
[Credential-related source omitted] - Access to secretsline 372
[Credential-related source omitted] - Network accessline 384
> [!NOTE] > The documentation below discusses how to use Ably in "Pusher compatibility" mode. However, the Ably team recommends and maintains a broadcaster and Echo client that is able to take advantage of the unique capabilities offered by - Network accessline 385
> The documentation below discusses how to use Ably in "Pusher compatibility" mode. However, the Ably team recommends and maintains a broadcaster and Echo client that is able to take advantage of the unique capabilities offered by Ably. For - Network accessline 387
[Laravel Echo](https://github.com/laravel/echo) is a JavaScript library that makes it painless to subscribe to channels and listen for events broadcast by your server-side broadcasting driver. - Access to secretsline 412
[Credential-related source omitted] - Access to secretsline 425
[Credential-related source omitted] - Access to secretsline 438
[Credential-related source omitted] - Network accessline 460
Laravel's event broadcasting allows you to broadcast your server-side Laravel events to your client-side JavaScript application using a driver-based approach to WebSockets. Currently, Laravel ships with [Laravel Reverb](https://reverb.larav - Network accessline 927
When you initialize a Laravel Echo instance, a socket ID is assigned to the connection. If you are using a global [Axios](https://github.com/axios/axios) instance to make HTTP requests from your JavaScript application, the socket ID will au - Network accessline 1639
> [!NOTE] > When using [Pusher Channels](https://pusher.com/channels), you must enable the "Client Events" option in the "App Settings" section of your [application dashboard](https://dashboard.pusher.com/) in order to send client events. - Network accessline 1640
> When using [Pusher Channels](https://pusher.com/channels), you must enable the "Client Events" option in the "App Settings" section of your [application dashboard](https://dashboard.pusher.com/) in order to send client events.
skills/laravel12/references/cache.md
- Network accessline 27
Some of the data retrieval or processing tasks performed by your application could be CPU intensive or take several seconds to complete. When this is the case, it is common to cache the retrieved data for a time so it can be retrieved quick - Network accessline 34
Your application's cache configuration file is located at `config/cache.php`. In this file, you may specify which cache store you would like to be used by default throughout your application. Laravel supports popular caching backends like [ - Network accessline 55
Using the Memcached driver requires the [Memcached PECL package](https://pecl.php.net/package/memcached) to be installed. You may list all of your Memcached servers in the `config/cache.php` configuration file. This file already contains a - Network accessline 90
Before using a Redis cache with Laravel, you will need to either install the PhpRedis PHP extension via PECL or install the `predis/predis` package (~2.0) via Composer. [Laravel Sail](/docs/{{version}}/sail) already includes this extension. - Network accessline 97
Before using the [DynamoDB](https://aws.amazon.com/dynamodb) cache driver, you must create a DynamoDB table to store all of the cached data. Typically, this table should be named `cache`. However, you should name the table based on the valu - Network accessline 101
Typically, DynamoDB will not proactively remove expired items from a table. Therefore, you should [enable Time to Live (TTL)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html) on the table. When configuring the tabl - Access to secretsline 115
[Credential-related source omitted] - Network accessline 127
For more information on configuring MongoDB, please refer to the MongoDB [Cache and Locks documentation](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/cache/). - Network accessline 457
Atomic locks allow for the manipulation of distributed locks without worrying about race conditions. For example, [Laravel Cloud](https://cloud.laravel.com) uses atomic locks to ensure that only one remote task is being executed on a server - Network accessline 658
We just need to implement each of these methods using a MongoDB connection. For an example of how to implement each of these methods, take a look at the `Illuminate\Cache\MemcachedStore` in the [Laravel framework source code](https://github
skills/laravel12/references/cashier-paddle.md
- Network accessline 56
> [!WARNING] > This documentation is for Cashier Paddle 2.x's integration with Paddle Billing. If you're still using Paddle Classic, you should use [Cashier Paddle 1.x](https://github.com/laravel/cashier-paddle/tree/1.x). - Network accessline 57
> This documentation is for Cashier Paddle 2.x's integration with Paddle Billing. If you're still using Paddle Classic, you should use [Cashier Paddle 1.x](https://github.com/laravel/cashier-paddle/tree/1.x). - Network accessline 59
[Laravel Cashier Paddle](https://github.com/laravel/cashier-paddle) provides an expressive, fluent interface to [Paddle's](https://paddle.com) subscription billing services. It handles almost all of the boilerplate subscription billing code - Network accessline 61
Before digging into Cashier Paddle, we recommend you also review Paddle's [concept guides](https://developer.paddle.com/concepts/overview) and [API documentation](https://developer.paddle.com/api-reference/overview). - Network accessline 66
When upgrading to a new version of Cashier, it's important that you carefully review [the upgrade guide](https://github.com/laravel/cashier-paddle/blob/master/UPGRADE.md). - Network accessline 95
During local and staging development, you should [register a Paddle Sandbox account](https://sandbox-login.paddle.com/signup). This account will give you a sandboxed environment to test and develop your applications without making actual pa - Network accessline 103
After you have finished developing your application you may [apply for a Paddle vendor account](https://paddle.com). Before your application is placed into production, Paddle will need to approve your application's domain. - Access to secretsline 141
[Credential-related source omitted] - Network accessline 149
The `PADDLE_RETAIN_KEY` is optional and should only be set if you're using Paddle with [Retain](https://developer.paddle.com/concepts/retain/overview). - Network accessline 167
You can specify a locale to be used when formatting money values for display on invoices. Internally, Cashier utilizes [PHP's `NumberFormatter` class](https://www.php.net/manual/en/class.numberformatter.php) to set the currency locale: - Network accessline 215
Offering product and subscription billing via your application can be intimidating. However, thanks to Cashier and [Paddle's Checkout Overlay](https://developer.paddle.com/concepts/sell/overlay-checkout), you can easily build modern, robust - Network accessline 230
As you can see in the example above, we will utilize Cashier's provided `checkout` method to create a checkout object to present the customer the Paddle Checkout Overlay for a given "price identifier". When using Paddle, "prices" refer to [ - Network accessline 313
Please refer to Paddle's documentation for more information on the [data contained by the `transaction.completed` event](https://developer.paddle.com/webhooks/transactions/transaction-completed). - Network accessline 321
Offering product and subscription billing via your application can be intimidating. However, thanks to Cashier and [Paddle's Checkout Overlay](https://developer.paddle.com/concepts/sell/overlay-checkout), you can easily build modern, robust - Network accessline 444
Most operations to bill customers are performed using "checkouts" via Paddle's [Checkout Overlay widget](https://developer.paddle.com/build/checkout/build-overlay-checkout) or by utilizing [inline checkout](https://developer.paddle.com/buil - Network accessline 446
Before processing checkout payments using Paddle, you should define your application's [default payment link](https://developer.paddle.com/build/transactions/default-payment-link#set-default-link) in your Paddle checkout settings dashboard. - Network accessline 472
By default, this will display the widget using Paddle's default styling. You can customize the widget by adding [Paddle supported attributes](https://developer.paddle.com/paddlejs/html-data-attributes) like the `data-theme='light'` attribu - Network accessline 552
Please consult Paddle's [guide on Inline Checkout](https://developer.paddle.com/build/checkout/build-branded-inline-checkout) and [available checkout settings](https://developer.paddle.com/build/checkout/set-up-checkout-default-settings) fo - Network accessline 570
Next, you may use Paddle.js to initialize the checkout. In this example, we will demonstrate this using [Alpine.js](https://github.com/alpinejs/alpine); however, you are free to modify this example for your own frontend stack: - Network accessline 647
For more information, [checkout Paddle's API documentation regarding price previews](https://developer.paddle.com/api-reference/pricing-preview/preview-prices). - Network accessline 733
An instance of `Laravel\Paddle\Customer` is returned. Once the customer has been created in Paddle, you may begin a subscription at a later date. You may provide an optional `$options` array to pass in any additional [customer creation para - Network accessline 1011
For more information on Paddle's proration policies, please consult Paddle's [proration documentation](https://developer.paddle.com/concepts/subscriptions/proration). - Network accessline 1056
[Subscription with multiple products](https://developer.paddle.com/build/subscriptions/add-remove-products-prices-addons) allow you to assign multiple billing products to a single subscription. For example, imagine you are building a custom - Network accessline 1343
To ensure your application can handle Paddle webhooks, be sure to [configure the webhook URL in the Paddle control panel](https://vendors.paddle.com/notifications-v2). By default, Cashier's webhook controller responds to the `/paddle/webhoo - Network accessline 1372
For Paddle to be able to send your application webhooks during local development, you will need to expose your application via a site sharing service such as [Ngrok](https://ngrok.com/) or [Expose](https://expose.dev/docs/introduction). If - Network accessline 1422
CASHIER_WEBHOOK=https://example.com/my-paddle-webhook-url - Network accessline 1428
To secure your webhooks, you may use [Paddle's webhook signatures](https://developer.paddle.com/webhooks/signature-verification). For convenience, Cashier automatically includes a middleware which validates that the incoming Paddle webhook - Network accessline 1458
A checkout session has a `customData` method, allowing you to pass any custom data you wish to the underlying transaction creation. Please consult [the Paddle documentation](https://developer.paddle.com/build/transactions/custom-data) to le - Network accessline 1493
For more information on refunds, please consult [Paddle's refund documentation](https://developer.paddle.com/build/transactions/create-transaction-adjustments). - Network accessline 1510
For more info, [see Paddle's documentation on crediting](https://developer.paddle.com/build/transactions/create-transaction-adjustments).
skills/laravel12/references/collections.md
- Network accessline 334
The `avg` method returns the [average value](https://en.wikipedia.org/wiki/Average) of a given key: - Network accessline 393
This method is especially useful in [views](/docs/{{version}}/views) when working with a grid system such as [Bootstrap](https://getbootstrap.com/docs/5.3/layout/grid/). For example, imagine you have a collection of [Eloquent](/docs/{{versi - Network accessline 756
The callback must be a comparison function that returns an integer less than, equal to, or greater than zero. For more information, refer to the PHP documentation on [array_diff_uassoc](https://www.php.net/array_diff_uassoc#refsect1-functio - Network accessline 1915
The `median` method returns the [median value](https://en.wikipedia.org/wiki/Median) of a given key: - Network accessline 1999
The `mode` method returns the [mode value](https://en.wikipedia.org/wiki/Mode_(statistics)) of a given key: - Network accessline 2092
The `pad` method will fill the array with the given value until the array reaches the specified size. This method behaves like the [array_pad](https://secure.php.net/manual/en/function.array-pad.php) PHP function. - Network accessline 2892
If your sorting needs are more advanced, you may pass a callback to `sort` with your own algorithm. Refer to the PHP documentation on [uasort](https://secure.php.net/manual/en/function.uasort.php#refsect1-function.uasort-parameters), which - Network accessline 2922
The `sortBy` method accepts [sort flags](https://www.php.net/manual/en/function.sort.php) as its second argument: - Network accessline 3099
The callback must be a comparison function that returns an integer less than, equal to, or greater than zero. For more information, refer to the PHP documentation on [uksort](https://www.php.net/manual/en/function.uksort.php#refsect1-functi - Network accessline 4067
> [!WARNING] > Before learning more about Laravel's lazy collections, take some time to familiarize yourself with [PHP generators](https://www.php.net/manual/en/language.generators.overview.php). - Network accessline 4068
> Before learning more about Laravel's lazy collections, take some time to familiarize yourself with [PHP generators](https://www.php.net/manual/en/language.generators.overview.php). - Network accessline 4070
To supplement the already powerful `Collection` class, the `LazyCollection` class leverages PHP's [generators](https://www.php.net/manual/en/language.generators.overview.php) to allow you to work with very large datasets while keeping memor
skills/laravel12/references/configuration.md
- Network accessline 48
To make this a cinch, Laravel utilizes the [DotEnv](https://github.com/vlucas/phpdotenv) PHP library. In a fresh Laravel installation, the root directory of your application will contain a `.env.example` file that defines many common enviro - Access to secretsline 190
[Credential-related source omitted] - Access to secretsline 330
[Credential-related source omitted] - Network accessline 333
https://example.com/1630542a-246b-4b66-afa1-dd72a4c43515 - Access to secretsline 342
[Credential-related source omitted] - Network accessline 399
Since maintenance mode requires your application to have several seconds of downtime, consider running your applications on a fully-managed platform like [Laravel Cloud](https://cloud.laravel.com) to accomplish zero-downtime deployment with
skills/laravel12/references/container.md
- Network accessline 776
Laravel's service container implements the [PSR-11](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-11-container.md) interface. Therefore, you may type-hint the PSR-11 container interface to obtain an instance of the Larav
skills/laravel12/references/context.md
skills/laravel12/references/contracts.md
- Network accessline 14
Each contract has a corresponding implementation provided by the framework. For example, Laravel provides a queue implementation with a variety of drivers, and a mailer implementation that is powered by [Symfony Mailer](https://symfony.com/ - Network accessline 16
All of the Laravel contracts live in [their own GitHub repository](https://github.com/illuminate/contracts). This provides a quick reference point for all available contracts, as well as a single, decoupled package that may be utilized when - Network accessline 78
| Contract | References Facade | | --- | --- | | [Illuminate\Contracts\Auth\Access\Authorizable](https://github.com/illuminate/contracts/blob/{{version}}/Auth/Access/Authorizable.php) | | - Network accessline 79
| --- | --- | | [Illuminate\Contracts\Auth\Access\Authorizable](https://github.com/illuminate/contracts/blob/{{version}}/Auth/Access/Authorizable.php) | | | [Illuminate\Contracts\Auth\Access\Gate](https://github.com/illuminate/contra - Network accessline 80
| [Illuminate\Contracts\Auth\Access\Authorizable](https://github.com/illuminate/contracts/blob/{{version}}/Auth/Access/Authorizable.php) | | - Network accessline 81
| [Illuminate\Contracts\Auth\Access\Gate](https://github.com/illuminate/contracts/blob/{{version}}/Auth/Access/Gate.php) | `Gate` | - Network accessline 82
| [Illuminate\Contracts\Auth\Authenticatable](https://github.com/illuminate/contracts/blob/{{version}}/Auth/Authenticatable.php) | | - Network accessline 83
| [Illuminate\Contracts\Auth\CanResetPassword](https://github.com/illuminate/contracts/blob/{{version}}/Auth/CanResetPassword.php) | | - Network accessline 84
| [Illuminate\Contracts\Auth\Factory](https://github.com/illuminate/contracts/blob/{{version}}/Auth/Factory.php) | `Auth` | - Network accessline 85
| [Illuminate\Contracts\Auth\Guard](https://github.com/illuminate/contracts/blob/{{version}}/Auth/Guard.php) | `Auth::guard()` | - Network accessline 86
[Credential-related source omitted] - Network accessline 87
| [Illuminate\Contracts\Auth\PasswordBrokerFactory](https://github.com/illuminate/contracts/blob/{{version}}/Auth/PasswordBrokerFactory.php) | `Password` | - Network accessline 88
| [Illuminate\Contracts\Auth\StatefulGuard](https://github.com/illuminate/contracts/blob/{{version}}/Auth/StatefulGuard.php) | | - Network accessline 89
| [Illuminate\Contracts\Auth\SupportsBasicAuth](https://github.com/illuminate/contracts/blob/{{version}}/Auth/SupportsBasicAuth.php) | | - Network accessline 90
| [Illuminate\Contracts\Auth\UserProvider](https://github.com/illuminate/contracts/blob/{{version}}/Auth/UserProvider.php) | | - Network accessline 91
| [Illuminate\Contracts\Broadcasting\Broadcaster](https://github.com/illuminate/contracts/blob/{{version}}/Broadcasting/Broadcaster.php) | `Broadcast::connection()` | - Network accessline 92
| [Illuminate\Contracts\Broadcasting\Factory](https://github.com/illuminate/contracts/blob/{{version}}/Broadcasting/Factory.php) | `Broadcast` | - Network accessline 93
| [Illuminate\Contracts\Broadcasting\ShouldBroadcast](https://github.com/illuminate/contracts/blob/{{version}}/Broadcasting/ShouldBroadcast.php) | | - Network accessline 94
| [Illuminate\Contracts\Broadcasting\ShouldBroadcastNow](https://github.com/illuminate/contracts/blob/{{version}}/Broadcasting/ShouldBroadcastNow.php) | | - Network accessline 95
| [Illuminate\Contracts\Bus\Dispatcher](https://github.com/illuminate/contracts/blob/{{version}}/Bus/Dispatcher.php) | `Bus` | - Network accessline 96
| [Illuminate\Contracts\Bus\QueueingDispatcher](https://github.com/illuminate/contracts/blob/{{version}}/Bus/QueueingDispatcher.php) | `Bus::dispatchToQueue()` | - Network accessline 97
| [Illuminate\Contracts\Cache\Factory](https://github.com/illuminate/contracts/blob/{{version}}/Cache/Factory.php) | `Cache` | - Network accessline 98
| [Illuminate\Contracts\Cache\Lock](https://github.com/illuminate/contracts/blob/{{version}}/Cache/Lock.php) | | - Network accessline 99
| [Illuminate\Contracts\Cache\LockProvider](https://github.com/illuminate/contracts/blob/{{version}}/Cache/LockProvider.php) | | - Network accessline 100
| [Illuminate\Contracts\Cache\Repository](https://github.com/illuminate/contracts/blob/{{version}}/Cache/Repository.php) | `Cache::driver()` | - Network accessline 101
| [Illuminate\Contracts\Cache\Store](https://github.com/illuminate/contracts/blob/{{version}}/Cache/Store.php) | | - Network accessline 102
| [Illuminate\Contracts\Config\Repository](https://github.com/illuminate/contracts/blob/{{version}}/Config/Repository.php) | `Config` | - Network accessline 103
| [Illuminate\Contracts\Console\Application](https://github.com/illuminate/contracts/blob/{{version}}/Console/Application.php) | | - Network accessline 104
| [Illuminate\Contracts\Console\Kernel](https://github.com/illuminate/contracts/blob/{{version}}/Console/Kernel.php) | `Artisan` | - Network accessline 105
| [Illuminate\Contracts\Container\Container](https://github.com/illuminate/contracts/blob/{{version}}/Container/Container.php) | `App` | - Network accessline 106
| [Illuminate\Contracts\Cookie\Factory](https://github.com/illuminate/contracts/blob/{{version}}/Cookie/Factory.php) | `Cookie` | - Network accessline 107
| [Illuminate\Contracts\Cookie\QueueingFactory](https://github.com/illuminate/contracts/blob/{{version}}/Cookie/QueueingFactory.php) | `Cookie::queue()` | - Network accessline 108
| [Illuminate\Contracts\Database\ModelIdentifier](https://github.com/illuminate/contracts/blob/{{version}}/Database/ModelIdentifier.php) | | - Network accessline 109
| [Illuminate\Contracts\Debug\ExceptionHandler](https://github.com/illuminate/contracts/blob/{{version}}/Debug/ExceptionHandler.php) | | - Network accessline 110
| [Illuminate\Contracts\Encryption\Encrypter](https://github.com/illuminate/contracts/blob/{{version}}/Encryption/Encrypter.php) | `Crypt` | - Network accessline 111
| [Illuminate\Contracts\Events\Dispatcher](https://github.com/illuminate/contracts/blob/{{version}}/Events/Dispatcher.php) | `Event` | - Network accessline 112
| [Illuminate\Contracts\Filesystem\Cloud](https://github.com/illuminate/contracts/blob/{{version}}/Filesystem/Cloud.php) | `Storage::cloud()` | - Network accessline 113
| [Illuminate\Contracts\Filesystem\Factory](https://github.com/illuminate/contracts/blob/{{version}}/Filesystem/Factory.php) | `Storage` | - Network accessline 114
| [Illuminate\Contracts\Filesystem\Filesystem](https://github.com/illuminate/contracts/blob/{{version}}/Filesystem/Filesystem.php) | `Storage::disk()` | - Network accessline 115
| [Illuminate\Contracts\Foundation\Application](https://github.com/illuminate/contracts/blob/{{version}}/Foundation/Application.php) | `App` | - Network accessline 116
| [Illuminate\Contracts\Hashing\Hasher](https://github.com/illuminate/contracts/blob/{{version}}/Hashing/Hasher.php) | `Hash` | - Network accessline 117
| [Illuminate\Contracts\Http\Kernel](https://github.com/illuminate/contracts/blob/{{version}}/Http/Kernel.php) | | - Network accessline 118
| [Illuminate\Contracts\Mail\Mailable](https://github.com/illuminate/contracts/blob/{{version}}/Mail/Mailable.php) | | - Network accessline 119
| [Illuminate\Contracts\Mail\Mailer](https://github.com/illuminate/contracts/blob/{{version}}/Mail/Mailer.php) | `Mail` | - Network accessline 120
| [Illuminate\Contracts\Mail\MailQueue](https://github.com/illuminate/contracts/blob/{{version}}/Mail/MailQueue.php) | `Mail::queue()` | - Network accessline 121
| [Illuminate\Contracts\Notifications\Dispatcher](https://github.com/illuminate/contracts/blob/{{version}}/Notifications/Dispatcher.php) | `Notification`| - Network accessline 122
| [Illuminate\Contracts\Notifications\Factory](https://github.com/illuminate/contracts/blob/{{version}}/Notifications/Factory.php) | `Notification` | - Network accessline 123
| [Illuminate\Contracts\Pagination\LengthAwarePaginator](https://github.com/illuminate/contracts/blob/{{version}}/Pagination/LengthAwarePaginator.php) | | - Network accessline 124
| [Illuminate\Contracts\Pagination\Paginator](https://github.com/illuminate/contracts/blob/{{version}}/Pagination/Paginator.php) | | - Network accessline 125
| [Illuminate\Contracts\Pipeline\Hub](https://github.com/illuminate/contracts/blob/{{version}}/Pipeline/Hub.php) | | - Network accessline 126
| [Illuminate\Contracts\Pipeline\Pipeline](https://github.com/illuminate/contracts/blob/{{version}}/Pipeline/Pipeline.php) | `Pipeline` | - Network accessline 127
| [Illuminate\Contracts\Queue\EntityResolver](https://github.com/illuminate/contracts/blob/{{version}}/Queue/EntityResolver.php) | | - Network accessline 128
| [Illuminate\Contracts\Queue\Factory](https://github.com/illuminate/contracts/blob/{{version}}/Queue/Factory.php) | `Queue` | - Network accessline 129
| [Illuminate\Contracts\Queue\Job](https://github.com/illuminate/contracts/blob/{{version}}/Queue/Job.php) | | - Network accessline 130
| [Illuminate\Contracts\Queue\Monitor](https://github.com/illuminate/contracts/blob/{{version}}/Queue/Monitor.php) | `Queue` | - Network accessline 131
| [Illuminate\Contracts\Queue\Queue](https://github.com/illuminate/contracts/blob/{{version}}/Queue/Queue.php) | `Queue::connection()` | - Network accessline 132
| [Illuminate\Contracts\Queue\QueueableCollection](https://github.com/illuminate/contracts/blob/{{version}}/Queue/QueueableCollection.php) | | - Network accessline 133
| [Illuminate\Contracts\Queue\QueueableEntity](https://github.com/illuminate/contracts/blob/{{version}}/Queue/QueueableEntity.php) | | - Network accessline 134
| [Illuminate\Contracts\Queue\ShouldQueue](https://github.com/illuminate/contracts/blob/{{version}}/Queue/ShouldQueue.php) | | - Network accessline 135
| [Illuminate\Contracts\Redis\Factory](https://github.com/illuminate/contracts/blob/{{version}}/Redis/Factory.php) | `Redis` | - Network accessline 136
| [Illuminate\Contracts\Routing\BindingRegistrar](https://github.com/illuminate/contracts/blob/{{version}}/Routing/BindingRegistrar.php) | `Route` | - Network accessline 137
| [Illuminate\Contracts\Routing\Registrar](https://github.com/illuminate/contracts/blob/{{version}}/Routing/Registrar.php) | `Route` | - Network accessline 138
| [Illuminate\Contracts\Routing\ResponseFactory](https://github.com/illuminate/contracts/blob/{{version}}/Routing/ResponseFactory.php) | `Response` | - Network accessline 139
| [Illuminate\Contracts\Routing\UrlGenerator](https://github.com/illuminate/contracts/blob/{{version}}/Routing/UrlGenerator.php) | `URL` | - Network accessline 140
| [Illuminate\Contracts\Routing\UrlRoutable](https://github.com/illuminate/contracts/blob/{{version}}/Routing/UrlRoutable.php) | | - Network accessline 141
| [Illuminate\Contracts\Session\Session](https://github.com/illuminate/contracts/blob/{{version}}/Session/Session.php) | `Session::driver()` | - Network accessline 142
| [Illuminate\Contracts\Support\Arrayable](https://github.com/illuminate/contracts/blob/{{version}}/Support/Arrayable.php) | | - Network accessline 143
| [Illuminate\Contracts\Support\Htmlable](https://github.com/illuminate/contracts/blob/{{version}}/Support/Htmlable.php) | | - Network accessline 144
| [Illuminate\Contracts\Support\Jsonable](https://github.com/illuminate/contracts/blob/{{version}}/Support/Jsonable.php) | | - Network accessline 145
| [Illuminate\Contracts\Support\MessageBag](https://github.com/illuminate/contracts/blob/{{version}}/Support/MessageBag.php) | | - Network accessline 146
| [Illuminate\Contracts\Support\MessageProvider](https://github.com/illuminate/contracts/blob/{{version}}/Support/MessageProvider.php) | | - Network accessline 147
| [Illuminate\Contracts\Support\Renderable](https://github.com/illuminate/contracts/blob/{{version}}/Support/Renderable.php) | | - Network accessline 148
| [Illuminate\Contracts\Support\Responsable](https://github.com/illuminate/contracts/blob/{{version}}/Support/Responsable.php) | | - Network accessline 149
| [Illuminate\Contracts\Translation\Loader](https://github.com/illuminate/contracts/blob/{{version}}/Translation/Loader.php) | | - Network accessline 150
| [Illuminate\Contracts\Translation\Translator](https://github.com/illuminate/contracts/blob/{{version}}/Translation/Translator.php) | `Lang` | - Network accessline 151
| [Illuminate\Contracts\Validation\Factory](https://github.com/illuminate/contracts/blob/{{version}}/Validation/Factory.php) | `Validator` | - Network accessline 152
| [Illuminate\Contracts\Validation\ValidatesWhenResolved](https://github.com/illuminate/contracts/blob/{{version}}/Validation/ValidatesWhenResolved.php) | | - Network accessline 153
| [Illuminate\Contracts\Validation\ValidationRule](https://github.com/illuminate/contracts/blob/{{version}}/Validation/ValidationRule.php) | | - Network accessline 154
| [Illuminate\Contracts\Validation\Validator](https://github.com/illuminate/contracts/blob/{{version}}/Validation/Validator.php) | `Validator::make()` | - Network accessline 155
| [Illuminate\Contracts\View\Engine](https://github.com/illuminate/contracts/blob/{{version}}/View/Engine.php) | | - Network accessline 156
| [Illuminate\Contracts\View\Factory](https://github.com/illuminate/contracts/blob/{{version}}/View/Factory.php) | `View` | - Network accessline 157
| [Illuminate\Contracts\View\View](https://github.com/illuminate/contracts/blob/{{version}}/View/View.php) | `View::make()` |
skills/laravel12/references/contributions.md
- Network accessline 21
Remember, bug reports are created in the hope that others with the same problem will be able to collaborate with you on solving it. Do not expect that the bug report will automatically see any activity or that others will jump to fix it. Cr - Network accessline 29
- [Laravel Application](https://github.com/laravel/laravel) - Network accessline 30
- [Laravel Art](https://github.com/laravel/art) - Network accessline 31
- [Laravel Boost](https://github.com/laravel/boost) - Network accessline 32
- [Laravel Documentation](https://github.com/laravel/docs) - Network accessline 33
- [Laravel Dusk](https://github.com/laravel/dusk) - Network accessline 34
- [Laravel Cashier Stripe](https://github.com/laravel/cashier) - Network accessline 35
- [Laravel Cashier Paddle](https://github.com/laravel/cashier-paddle) - Network accessline 36
- [Laravel Echo](https://github.com/laravel/echo) - Network accessline 37
- [Laravel Envoy](https://github.com/laravel/envoy) - Network accessline 38
- [Laravel Folio](https://github.com/laravel/folio) - Network accessline 39
- [Laravel Framework](https://github.com/laravel/framework) - Network accessline 40
- [Laravel Horizon](https://github.com/laravel/horizon) - Network accessline 41
- [Laravel Passport](https://github.com/laravel/passport) - Network accessline 42
- [Laravel Pennant](https://github.com/laravel/pennant) - Network accessline 43
- [Laravel Pint](https://github.com/laravel/pint) - Network accessline 44
- [Laravel Prompts](https://github.com/laravel/prompts) - Network accessline 45
- [Laravel Reverb](https://github.com/laravel/reverb) - Network accessline 46
- [Laravel Sail](https://github.com/laravel/sail) - Network accessline 47
- [Laravel Sanctum](https://github.com/laravel/sanctum) - Network accessline 48
- [Laravel Scout](https://github.com/laravel/scout) - Network accessline 49
- [Laravel Socialite](https://github.com/laravel/socialite) - Network accessline 50
- [Laravel Telescope](https://github.com/laravel/telescope) - Network accessline 51
- [Laravel Livewire Starter Kit](https://github.com/laravel/livewire-starter-kit) - Network accessline 52
- [Laravel React Starter Kit](https://github.com/laravel/react-starter-kit) - Network accessline 53
- [Laravel Svelte Starter Kit](https://github.com/laravel/svelte-starter-kit) - Network accessline 54
- [Laravel Vue Starter Kit](https://github.com/laravel/vue-starter-kit) - Network accessline 65
- [GitHub Discussions](https://github.com/laravel/framework/discussions) - Network accessline 66
- [Laracasts Forums](https://laracasts.com/discuss) - Network accessline 67
- [Laravel.io Forums](https://laravel.io/forum) - Network accessline 68
- [StackOverflow](https://stackoverflow.com/questions/tagged/laravel) - Network accessline 69
- [Discord](https://discord.gg/laravel) - Network accessline 70
- [Larachat](https://larachat.co) - Network accessline 71
- [IRC](https://web.libera.chat/?nick=artisan&channels=#laravel) - Network accessline 78
You may propose new features or improvements of existing Laravel behavior in the Laravel framework repository's [GitHub discussion board](https://github.com/laravel/framework/discussions). If you propose a new feature, please be willing to - Network accessline 80
Informal discussion regarding bugs, new features, and implementation of existing features takes place in the `#internals` channel of the [Laravel Discord server](https://discord.gg/laravel). Taylor Otwell, the maintainer of Laravel, is typi - Network accessline 104
Laravel follows the [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) coding standard and the [PSR-4](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md) autolo - Network accessline 159
Don't worry if your code styling isn't perfect! [StyleCI](https://styleci.io/) will automatically merge any style fixes into the Laravel repository after pull requests are merged. This allows us to focus on the content of the contribution a
skills/laravel12/references/csrf.md
- Network accessline 12
Cross-site request forgeries are a type of malicious exploit whereby unauthorized commands are performed on behalf of an authenticated user. Thankfully, Laravel makes it easy to protect your application from [cross-site request forgery](htt - Network accessline 22
<form action="https://your-application.com/user/email" method="POST"> - Network accessline 75
Sometimes you may wish to exclude a set of URIs from CSRF protection. For example, if you are using [Stripe](https://stripe.com) to process payments and are utilizing their webhook system, you will need to exclude your Stripe webhook handle - Network accessline 81
$middleware->validateCsrfTokens(except: [ 'stripe/*', 'http://example.com/foo/bar', - Network accessline 82
'stripe/*', 'http://example.com/foo/bar', 'http://example.com/foo/*', - Network accessline 83
'http://example.com/foo/bar', - Network accessline 84
'http://example.com/foo/*',
skills/laravel12/references/database-testing.md
- Network accessline 194
Laravel provides several database assertions for your [Pest](https://pestphp.com) or [PHPUnit](https://phpunit.de) feature tests. We'll discuss each of these assertions below.
skills/laravel12/references/database.md
- Network accessline 22
- MariaDB 10.3+ ([Version Policy](https://mariadb.org/about/#maintenance-policy)) - Network accessline 23
- MySQL 5.7+ ([Version Policy](https://en.wikipedia.org/wiki/MySQL#Release_history)) - Network accessline 24
- PostgreSQL 10.0+ ([Version Policy](https://www.postgresql.org/support/versioning/)) - Network accessline 26
- SQL Server 2017+ ([Version Policy](https://docs.microsoft.com/en-us/lifecycle/products/?products=sql-server)) - Network accessline 30
Additionally, MongoDB is supported via the `mongodb/laravel-mongodb` package, which is officially maintained by MongoDB. Check out the [Laravel MongoDB](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/) documentation for more infor - Network accessline 269
When using the `DB` facade's `statement` and `unprepared` methods within transactions you must be careful to avoid statements that cause [implicit commits](https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html). These statements will - Network accessline 275
Please refer to the MySQL manual for [a list of all statements](https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html) that trigger implicit commits.
skills/laravel12/references/deployment.md
- Network accessline 31
- PHP >= 8.2 - Ctype PHP Extension - cURL PHP Extension - Network accessline 32
- Ctype PHP Extension - cURL PHP Extension - DOM PHP Extension - Network accessline 33
- cURL PHP Extension - Network accessline 54
If you are deploying your application to a server that is running Nginx, you may use the following configuration file as a starting point for configuring your web server. Most likely, this file will need to be customized depending on your s - Network accessline 97
[FrankenPHP](https://frankenphp.dev/) may also be used to serve your Laravel applications. FrankenPHP is a modern PHP application server written in Go. To serve a Laravel PHP application using FrankenPHP, you may simply invoke its `php-serv - Network accessline 103
To take advantage of more powerful features supported by FrankenPHP, such as its [Laravel Octane](/docs/{{version}}/octane) integration, HTTP/3, modern compression, or the ability to package Laravel applications as standalone binaries, plea - Network accessline 175
> [!NOTE] > When deploying to [Laravel Cloud](https://cloud.laravel.com), it is not necessary to use the `reload` command, as gracefully reloading of all services is handled automatically. - Network accessline 176
> When deploying to [Laravel Cloud](https://cloud.laravel.com), it is not necessary to use the `reload` command, as gracefully reloading of all services is handled automatically. - Network accessline 184
If you are not using [Laravel Cloud](https://cloud.laravel.com), you should manually configure a process monitor that can detect when your reloadable processes exit and automatically restart them. - Network accessline 218
If you would like a fully-managed, auto-scaling deployment platform tuned for Laravel, check out [Laravel Cloud](https://cloud.laravel.com). Laravel Cloud is a robust deployment platform for Laravel, offering managed compute, databases, cac - Network accessline 225
If you prefer to manage your own servers but aren't comfortable configuring all of the various services needed to run a robust Laravel application, [Laravel Forge](https://forge.laravel.com) is a VPS server management platform for Laravel a
skills/laravel12/references/documentation.md
skills/laravel12/references/dusk.md
- Network accessline 56
> [!WARNING] > [Pest 4](https://pestphp.com/) now includes automated browser testing which offers significant performance and usability improvements compared to Laravel Dusk. For new projects, we recommend using Pest for browser testing. - Network accessline 57
> [Pest 4](https://pestphp.com/) now includes automated browser testing which offers significant performance and usability improvements compared to Laravel Dusk. For new projects, we recommend using Pest for browser testing. - Network accessline 59
[Laravel Dusk](https://github.com/laravel/dusk) provides an expressive, easy-to-use browser automation and testing API. By default, Dusk does not require you to install JDK or Selenium on your local computer. Instead, Dusk uses a standalone - Network accessline 64
To get started, you should install [Google Chrome](https://www.google.com/chrome) and add the `laravel/dusk` Composer dependency to your project: - Network accessline 109
By default, Dusk uses Google Chrome and a standalone [ChromeDriver](https://sites.google.com/chromium.org/driver) installation to run your browser tests. However, you may start your own Selenium server and run your tests against any browser - Network accessline 134
{ return RemoteWebDriver::create( 'http://localhost:4444/wd/hub', DesiredCapabilities::phantomjs() - Network accessline 135
return RemoteWebDriver::create( 'http://localhost:4444/wd/hub', DesiredCapabilities::phantomjs() ); - Network accessline 136
'http://localhost:4444/wd/hub', DesiredCapabilities::phantomjs() - Network accessline 299
The `dusk` command accepts any argument that is normally accepted by the Pest / PHPUnit test runner, such as allowing you to only run the tests for a given [group](https://docs.phpunit.de/en/10.5/annotations.html#group): - Network accessline 334
{ return RemoteWebDriver::create( 'http://localhost:9515', DesiredCapabilities::chrome() - Network accessline 335
return RemoteWebDriver::create( 'http://localhost:9515', DesiredCapabilities::chrome() ); - Network accessline 336
'http://localhost:9515', DesiredCapabilities::chrome() - Access to secretsline 563
[Credential-related source omitted] - Access to secretsline 565
[Credential-related source omitted] - Access to secretsline 571
[Credential-related source omitted] - Access to secretsline 573
[Credential-related source omitted] - Access to secretsline 579
[Credential-related source omitted] - Network accessline 872
> [!NOTE] > All modifier keys such as `{command}` are wrapped in `{}` characters, and match the constants defined in the `Facebook\WebDriver\WebDriverKeys` class, which can be [found on GitHub](https://github.com/php-webdriver/php-webdriver - Network accessline 873
> All modifier keys such as `{command}` are wrapped in `{}` characters, and match the constants defined in the `Facebook\WebDriver\WebDriverKeys` class, which can be [found on GitHub](https://github.com/php-webdriver/php-webdriver/blob/mast - Network accessline 1257
$browser->waitForLocation('https://example.com/path'); - Network accessline 1303
The `waitUntilVue` and `waitUntilVueIsNot` methods may be used to wait until a [Vue component](https://vuejs.org) attribute has a given value: - Access to secretsline 1662
[Credential-related source omitted] - Access to secretsline 1671
[Credential-related source omitted] - Network accessline 2167
Dusk even allows you to make assertions on the state of [Vue component](https://vuejs.org) data. For example, imagine your application contains the following Vue component: - Network accessline 2534
> [!WARNING] > Most Dusk continuous integration configurations expect your Laravel application to be served using the built-in PHP development server on port 8000. Therefore, before continuing, you should ensure that your continuous integra - Network accessline 2535
> Most Dusk continuous integration configurations expect your Laravel application to be served using the built-in PHP development server on port 8000. Therefore, before continuing, you should ensure that your continuous integration environm - Network accessline 2540
To run Dusk tests on [Heroku CI](https://www.heroku.com/continuous-integration), add the following Google Chrome buildpack and scripts to your Heroku `app.json` file: - Network accessline 2546
"buildpacks": [ { "url": "heroku/php" }, { "url": "https://github.com/heroku/heroku-buildpack-chrome-for-testing" } - Network accessline 2547
{ "url": "heroku/php" }, { "url": "https://github.com/heroku/heroku-buildpack-chrome-for-testing" } ], - Network accessline 2548
{ "url": "https://github.com/heroku/heroku-buildpack-chrome-for-testing" } - Access to secretsline 2551
[Credential-related source omitted] - Network accessline 2562
To run your Dusk tests on [Travis CI](https://travis-ci.org), use the following `.travis.yml` configuration. Since Travis CI is not a graphical environment, we will need to take some extra steps in order to launch a Chrome browser. In addit - Access to secretsline 2574
[Credential-related source omitted] - Network accessline 2579
before_script: - google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost & - Network accessline 2580
- google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost & - Network accessline 2590
If you are using [GitHub Actions](https://github.com/features/actions) to run your Dusk tests, you may use the following configuration file as a starting point. Like TravisCI, we will use the `php artisan serve` command to launch PHP's buil - Network accessline 2598
runs-on: ubuntu-latest env: APP_URL: "http://127.0.0.1:8000" - Network accessline 2599
env: APP_URL: "http://127.0.0.1:8000" DB_USERNAME: root - Network accessline 2600
APP_URL: "http://127.0.0.1:8000" - Access to secretsline 2607
[Credential-related source omitted] - Dangerous shell operationline 2610
sudo systemctl start mysql - Network accessline 2641
If you are using [Chipper CI](https://chipperci.com) to run your Dusk tests, you may use the following configuration file as a starting point. We will use PHP's built-in server to run Laravel so we can listen for requests: - Access to secretsline 2663
[Credential-related source omitted] - Network accessline 2667
# Create a dusk env file, ensuring APP_URL uses BUILD_HOST cp -v .env .env.dusk.ci sed -i "s@APP_URL=.*@APP_URL=http://$BUILD_HOST:8000@g" .env.dusk.ci - Access to secretsline 2668
[Credential-related source omitted] - Network accessline 2669
sed -i "s@APP_URL=.*@APP_URL=http://$BUILD_HOST:8000@g" .env.dusk.ci - Network accessline 2684
To learn more about running Dusk tests on Chipper CI, including how to use databases, consult the [official Chipper CI documentation](https://chipperci.com/docs/testing/laravel-dusk-new/).
skills/laravel12/references/eloquent-factories.md
- Network accessline 74
Via the `fake` helper, factories have access to the [Faker](https://github.com/FakerPHP/Faker) PHP library, which allows you to conveniently generate various kinds of random data for testing and seeding.
skills/laravel12/references/eloquent-mutators.md
- Network accessline 401
To solve this, Laravel offers an `AsArrayObject` cast that casts your JSON attribute to an [ArrayObject](https://www.php.net/manual/en/class.arrayobject.php) class. This feature is implemented using Laravel's [custom cast](#custom-casts) im - Network accessline 564
By default, Eloquent will cast the `created_at` and `updated_at` columns to instances of [Carbon](https://github.com/briannesbitt/Carbon), which extends the PHP `DateTime` class and provides an assortment of helpful methods. You may cast ad - Network accessline 617
Eloquent also allows you to cast your attribute values to PHP [Enums](https://www.php.net/manual/en/language.enumerations.backed.php). To accomplish this, you may specify the attribute and enum you wish to cast in your model's `casts` metho - Network accessline 1049
By combining "castables" with PHP's [anonymous classes](https://www.php.net/manual/en/language.oop5.anonymous.php), you may define a value object and its casting logic as a single castable object. To accomplish this, return an anonymous cla
skills/laravel12/references/eloquent-relationships.md
- Network accessline 338
The `belongsTo`, `hasOne`, `hasOneThrough`, and `morphOne` relationships allow you to define a default model that will be returned if the given relationship is `null`. This pattern is often referred to as the [Null Object pattern](https://e - Network accessline 598
The "has-many-through" relationship provides a convenient way to access distant relations via an intermediate relation. For example, let's assume we are building a deployment platform like [Laravel Cloud](https://cloud.laravel.com). An `App
skills/laravel12/references/eloquent-resources.md
- Network accessline 525
], "links":{ "first": "http://example.com/users?page=1", - Network accessline 526
"links":{ "first": "http://example.com/users?page=1", "last": "http://example.com/users?page=1", - Network accessline 527
"first": "http://example.com/users?page=1", - Network accessline 528
"last": "http://example.com/users?page=1", - Network accessline 534
"from": 1, "last_page": 1, "path": "http://example.com/users", - Network accessline 535
"last_page": 1, "path": "http://example.com/users", "per_page": 15, - Network accessline 536
"path": "http://example.com/users", - Network accessline 579
], "links":{ "first": "http://example.com/users?page=1", - Network accessline 580
"links":{ "first": "http://example.com/users?page=1", "last": "http://example.com/users?page=1", - Network accessline 581
"first": "http://example.com/users?page=1", - Network accessline 582
"last": "http://example.com/users?page=1", - Network accessline 588
"from": 1, "last_page": 1, "path": "http://example.com/users", - Network accessline 589
"last_page": 1, "path": "http://example.com/users", "per_page": 15, - Network accessline 590
"path": "http://example.com/users", - Network accessline 612
public function paginationInformation($request, $paginated, $default) { $default['links']['custom'] = 'https://example.com'; - Network accessline 614
$default['links']['custom'] = 'https://example.com';
skills/laravel12/references/eloquent-serialization.md
- Network accessline 54
To convert a model to JSON, you should use the `toJson` method. Like `toArray`, the `toJson` method is recursive, so all attributes and relations will be converted to JSON. You may also specify any JSON encoding options that are [supported
skills/laravel12/references/eloquent.md
- Network accessline 575
Internally, the `cursor` method uses PHP [generators](https://www.php.net/manual/en/language.generators.overview.php) to implement this functionality: - Network accessline 599
Although the `cursor` method uses far less memory than a regular query (by only holding a single Eloquent model in memory at a time), it will still eventually run out of memory. This is [due to PHP's PDO driver internally caching all raw qu
skills/laravel12/references/envoy.md
- Network accessline 23
[Laravel Envoy](https://github.com/laravel/envoy) is a tool for executing common tasks you run on your remote servers. Using [Blade](/docs/{{version}}/blade) style syntax, you can easily setup tasks for deployment, Artisan commands, and mor - Network accessline 283
Envoy supports sending notifications to [Slack](https://slack.com) after each task is executed. The `@slack` directive accepts a Slack hook URL and a channel / user name. You may retrieve your webhook URL by creating an "Incoming WebHooks" - Network accessline 304
Envoy also supports sending notifications to [Discord](https://discord.com) after each task is executed. The `@discord` directive accepts a Discord hook URL and a message. You may retrieve your webhook URL by creating a "Webhook" in your Se - Network accessline 315
Envoy also supports sending notifications to [Telegram](https://telegram.org) after each task is executed. The `@telegram` directive accepts a Telegram Bot ID and a Chat ID. You may retrieve your Bot ID by creating a new bot using [BotFathe - Network accessline 326
Envoy also supports sending notifications to [Microsoft Teams](https://www.microsoft.com/en-us/microsoft-teams) after each task is executed. The `@microsoftTeams` directive accepts a Teams Webhook (required), a message, theme color (success
skills/laravel12/references/errors.md
- Network accessline 35
In Laravel, exception reporting is used to log exceptions or send them to an external service like [Sentry](https://github.com/getsentry/sentry-laravel) or [Flare](https://flareapp.io). By default, exceptions will be logged based on your [l
skills/laravel12/references/facades.md
- Network accessline 306
| Facade | Class | Service Container Binding | | --- | --- | --- | | App | [Illuminate\Foundation\Application](https://api.laravel.com/docs/{{version}}/Illuminate/Foundation/Application.html) | `app` | - Network accessline 307
| --- | --- | --- | | App | [Illuminate\Foundation\Application](https://api.laravel.com/docs/{{version}}/Illuminate/Foundation/Application.html) | `app` | | Artisan | [Illuminate\Contracts\Console\Kernel](https://api.laravel.com/docs/{{vers - Network accessline 308
| App | [Illuminate\Foundation\Application](https://api.laravel.com/docs/{{version}}/Illuminate/Foundation/Application.html) | `app` | - Network accessline 309
| Artisan | [Illuminate\Contracts\Console\Kernel](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Console/Kernel.html) | `artisan` | - Network accessline 310
| Auth (Instance) | [Illuminate\Contracts\Auth\Guard](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Auth/Guard.html) | `auth.driver` | - Network accessline 311
| Auth | [Illuminate\Auth\AuthManager](https://api.laravel.com/docs/{{version}}/Illuminate/Auth/AuthManager.html) | `auth` | - Network accessline 312
| Blade | [Illuminate\View\Compilers\BladeCompiler](https://api.laravel.com/docs/{{version}}/Illuminate/View/Compilers/BladeCompiler.html) | `blade.compiler` | - Network accessline 313
| Broadcast (Instance) | [Illuminate\Contracts\Broadcasting\Broadcaster](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Broadcasting/Broadcaster.html) | | - Network accessline 314
| Broadcast | [Illuminate\Contracts\Broadcasting\Factory](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Broadcasting/Factory.html) | | - Network accessline 315
| Bus | [Illuminate\Contracts\Bus\Dispatcher](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Bus/Dispatcher.html) | | - Network accessline 316
| Cache (Instance) | [Illuminate\Cache\Repository](https://api.laravel.com/docs/{{version}}/Illuminate/Cache/Repository.html) | `cache.store` | - Network accessline 317
| Cache | [Illuminate\Cache\CacheManager](https://api.laravel.com/docs/{{version}}/Illuminate/Cache/CacheManager.html) | `cache` | - Network accessline 318
| Config | [Illuminate\Config\Repository](https://api.laravel.com/docs/{{version}}/Illuminate/Config/Repository.html) | `config` | - Network accessline 319
| Context | [Illuminate\Log\Context\Repository](https://api.laravel.com/docs/{{version}}/Illuminate/Log/Context/Repository.html) | | - Network accessline 320
| Cookie | [Illuminate\Cookie\CookieJar](https://api.laravel.com/docs/{{version}}/Illuminate/Cookie/CookieJar.html) | `cookie` | - Network accessline 321
| Crypt | [Illuminate\Encryption\Encrypter](https://api.laravel.com/docs/{{version}}/Illuminate/Encryption/Encrypter.html) | `encrypter` | - Network accessline 322
| Date | [Illuminate\Support\DateFactory](https://api.laravel.com/docs/{{version}}/Illuminate/Support/DateFactory.html) | `date` | - Network accessline 323
| DB (Instance) | [Illuminate\Database\Connection](https://api.laravel.com/docs/{{version}}/Illuminate/Database/Connection.html) | `db.connection` | - Network accessline 324
| DB | [Illuminate\Database\DatabaseManager](https://api.laravel.com/docs/{{version}}/Illuminate/Database/DatabaseManager.html) | `db` | - Network accessline 325
| Event | [Illuminate\Events\Dispatcher](https://api.laravel.com/docs/{{version}}/Illuminate/Events/Dispatcher.html) | `events` | - Network accessline 326
| Exceptions (Instance) | [Illuminate\Contracts\Debug\ExceptionHandler](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Debug/ExceptionHandler.html) | | - Network accessline 327
| Exceptions | [Illuminate\Foundation\Exceptions\Handler](https://api.laravel.com/docs/{{version}}/Illuminate/Foundation/Exceptions/Handler.html) | | - Network accessline 328
| File | [Illuminate\Filesystem\Filesystem](https://api.laravel.com/docs/{{version}}/Illuminate/Filesystem/Filesystem.html) | `files` | - Network accessline 329
| Gate | [Illuminate\Contracts\Auth\Access\Gate](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Auth/Access/Gate.html) | | - Network accessline 330
| Hash | [Illuminate\Contracts\Hashing\Hasher](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Hashing/Hasher.html) | `hash` | - Network accessline 331
| Http | [Illuminate\Http\Client\Factory](https://api.laravel.com/docs/{{version}}/Illuminate/Http/Client/Factory.html) | | - Network accessline 332
| Lang | [Illuminate\Translation\Translator](https://api.laravel.com/docs/{{version}}/Illuminate/Translation/Translator.html) | `translator` | - Network accessline 333
| Log | [Illuminate\Log\LogManager](https://api.laravel.com/docs/{{version}}/Illuminate/Log/LogManager.html) | `log` | - Network accessline 334
| Mail | [Illuminate\Mail\Mailer](https://api.laravel.com/docs/{{version}}/Illuminate/Mail/Mailer.html) | `mailer` | - Network accessline 335
| Notification | [Illuminate\Notifications\ChannelManager](https://api.laravel.com/docs/{{version}}/Illuminate/Notifications/ChannelManager.html) | | - Network accessline 336
| Password (Instance) | [Illuminate\Auth\Passwords\PasswordBroker](https://api.laravel.com/docs/{{version}}/Illuminate/Auth/Passwords/PasswordBroker.html) | `auth.password.broker` | - Network accessline 337
| Password | [Illuminate\Auth\Passwords\PasswordBrokerManager](https://api.laravel.com/docs/{{version}}/Illuminate/Auth/Passwords/PasswordBrokerManager.html) | `auth.password` | - Network accessline 338
| Pipeline (Instance) | [Illuminate\Pipeline\Pipeline](https://api.laravel.com/docs/{{version}}/Illuminate/Pipeline/Pipeline.html) | | - Network accessline 339
| Process | [Illuminate\Process\Factory](https://api.laravel.com/docs/{{version}}/Illuminate/Process/Factory.html) | | - Network accessline 340
| Queue (Base Class) | [Illuminate\Queue\Queue](https://api.laravel.com/docs/{{version}}/Illuminate/Queue/Queue.html) | | - Network accessline 341
| Queue (Instance) | [Illuminate\Contracts\Queue\Queue](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Queue/Queue.html) | `queue.connection` | - Network accessline 342
| Queue | [Illuminate\Queue\QueueManager](https://api.laravel.com/docs/{{version}}/Illuminate/Queue/QueueManager.html) | `queue` | - Network accessline 343
| RateLimiter | [Illuminate\Cache\RateLimiter](https://api.laravel.com/docs/{{version}}/Illuminate/Cache/RateLimiter.html) | | - Network accessline 344
| Redirect | [Illuminate\Routing\Redirector](https://api.laravel.com/docs/{{version}}/Illuminate/Routing/Redirector.html) | `redirect` | - Network accessline 345
| Redis (Instance) | [Illuminate\Redis\Connections\Connection](https://api.laravel.com/docs/{{version}}/Illuminate/Redis/Connections/Connection.html) | `redis.connection` | - Network accessline 346
| Redis | [Illuminate\Redis\RedisManager](https://api.laravel.com/docs/{{version}}/Illuminate/Redis/RedisManager.html) | `redis` | - Network accessline 347
| Request | [Illuminate\Http\Request](https://api.laravel.com/docs/{{version}}/Illuminate/Http/Request.html) | `request` | - Network accessline 348
| Response (Instance) | [Illuminate\Http\Response](https://api.laravel.com/docs/{{version}}/Illuminate/Http/Response.html) | | - Network accessline 349
| Response | [Illuminate\Contracts\Routing\ResponseFactory](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Routing/ResponseFactory.html) | | - Network accessline 350
| Route | [Illuminate\Routing\Router](https://api.laravel.com/docs/{{version}}/Illuminate/Routing/Router.html) | `router` | - Network accessline 351
| Schedule | [Illuminate\Console\Scheduling\Schedule](https://api.laravel.com/docs/{{version}}/Illuminate/Console/Scheduling/Schedule.html) | | - Network accessline 352
| Schema | [Illuminate\Database\Schema\Builder](https://api.laravel.com/docs/{{version}}/Illuminate/Database/Schema/Builder.html) | | - Network accessline 353
| Session (Instance) | [Illuminate\Session\Store](https://api.laravel.com/docs/{{version}}/Illuminate/Session/Store.html) | `session.store` | - Network accessline 354
| Session | [Illuminate\Session\SessionManager](https://api.laravel.com/docs/{{version}}/Illuminate/Session/SessionManager.html) | `session` | - Network accessline 355
| Storage (Instance) | [Illuminate\Contracts\Filesystem\Filesystem](https://api.laravel.com/docs/{{version}}/Illuminate/Contracts/Filesystem/Filesystem.html) | `filesystem.disk` | - Network accessline 356
| Storage | [Illuminate\Filesystem\FilesystemManager](https://api.laravel.com/docs/{{version}}/Illuminate/Filesystem/FilesystemManager.html) | `filesystem` | - Network accessline 357
| URL | [Illuminate\Routing\UrlGenerator](https://api.laravel.com/docs/{{version}}/Illuminate/Routing/UrlGenerator.html) | `url` | - Network accessline 358
| Validator (Instance) | [Illuminate\Validation\Validator](https://api.laravel.com/docs/{{version}}/Illuminate/Validation/Validator.html) | | - Network accessline 359
| Validator | [Illuminate\Validation\Factory](https://api.laravel.com/docs/{{version}}/Illuminate/Validation/Factory.html) | `validator` | - Network accessline 360
| View (Instance) | [Illuminate\View\View](https://api.laravel.com/docs/{{version}}/Illuminate/View/View.html) | | - Network accessline 361
| View | [Illuminate\View\Factory](https://api.laravel.com/docs/{{version}}/Illuminate/View/Factory.html) | `view` | - Network accessline 362
| Vite | [Illuminate\Foundation\Vite](https://api.laravel.com/docs/{{version}}/Illuminate/Foundation/Vite.html) | |
skills/laravel12/references/filesystem.md
- Network accessline 31
Laravel provides a powerful filesystem abstraction thanks to the wonderful [Flysystem](https://github.com/thephpleague/flysystem) PHP package by Frank de Jonge. The Laravel Flysystem integration provides simple drivers for working with loca - Access to secretsline 160
[Credential-related source omitted] - Network accessline 216
By default, your application's `filesystems` configuration file contains a disk configuration for the `s3` disk. In addition to using this disk to interact with [Amazon S3](https://aws.amazon.com/s3/), you may use it to interact with any S3 - Network accessline 221
'endpoint' => env('AWS_ENDPOINT', 'https://rustfs:9000'), - Network accessline 360
If you need to specify additional [S3 request parameters](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html#RESTObjectGET-requests), you may pass the array of request parameters as the third argument to the `temporaryUrl` m - Network accessline 834
> [!WARNING] > The `image` method requires the [GD extension](https://www.php.net/manual/en/book.image.php). - Network accessline 835
> The `image` method requires the [GD extension](https://www.php.net/manual/en/book.image.php).
skills/laravel12/references/folio.md
- Network accessline 21
[Laravel Folio](https://github.com/laravel/folio) is a powerful page based router designed to simplify routing in Laravel applications. With Laravel Folio, generating a route becomes as effortless as creating a Blade template within your ap - Network accessline 98
Once a Blade template has been placed in a Folio mounted directory, you may immediately access it via your browser. For example, a page placed in `pages/schedule.blade.php` may be accessed in your browser at `http://example.com/schedule`.
skills/laravel12/references/fortify.md
- Network accessline 30
[Laravel Fortify](https://github.com/laravel/fortify) is a frontend agnostic authentication backend implementation for Laravel. Fortify registers the routes and controllers needed to implement all of Laravel's authentication features, inclu - Network accessline 44
If you are new to Laravel, you may wish to explore [our application starter kits](/docs/{{version}}/starter-kits). Laravel's application starter kits use Fortify internally to provide authentication scaffolding for your application that inc - Network accessline 181
You may customize the authentication guard used by Fortify within your application's `fortify` configuration file. However, you should ensure that the configured guard is an implementation of `Illuminate\Contracts\Auth\StatefulGuard`. If yo
skills/laravel12/references/frontend.md
- Network accessline 53
Others, preferring to stick with the backend language they are comfortable with, have developed solutions that allow the construction of modern web application UIs while still primarily utilizing their backend language of choice. For exampl - Network accessline 55
Within the Laravel ecosystem, the need to create modern, dynamic frontends by primarily using PHP has led to the creation of [Laravel Livewire](https://livewire.laravel.com) and [Alpine.js](https://alpinejs.dev/). - Network accessline 60
[Laravel Livewire](https://livewire.laravel.com) is a framework for building Laravel powered frontends that feel dynamic, modern, and alive just like frontends built with modern JavaScript frameworks like React, Svelte, and Vue. - Network accessline 89
For many, Livewire has revolutionized frontend development with Laravel, allowing them to stay within the comfort of Laravel while constructing modern, dynamic web applications. Typically, developers using Livewire will also utilize [Alpine - Network accessline 91
If you're new to Laravel, we recommend getting familiar with the basic usage of [views](/docs/{{version}}/views) and [Blade](/docs/{{version}}/blade). Then, consult the official [Laravel Livewire documentation](https://livewire.laravel.com/ - Network accessline 103
However, without additional tooling, pairing Laravel with React, Svelte, or Vue would leave us needing to solve a variety of complicated problems such as client-side routing, data hydration, and authentication. Client-side routing is often - Network accessline 110
Thankfully, Laravel offers the best of both worlds. [Inertia](https://inertiajs.com) bridges the gap between your Laravel application and your modern React, Svelte, or Vue frontend, allowing you to build full-fledged, modern frontends using - Network accessline 158
If you're concerned about diving into Inertia because your application requires server-side rendering, don't worry. Inertia offers [server-side rendering support](https://inertiajs.com/server-side-rendering). And, when deploying your applic - Network accessline 163
If you would like to build your frontend using Inertia and React / Svelte / Vue, you can leverage our [React, Svelte, or Vue application starter kits](/docs/{{version}}/starter-kits) to jump-start your application's development. Both of the - Network accessline 170
By default, Laravel utilizes [Vite](https://vitejs.dev) to bundle your assets. Vite provides lightning-fast build times and near instantaneous Hot Module Replacement (HMR) during local development. In all new Laravel applications, including
skills/laravel12/references/hashing.md
- Network accessline 21
By default, Laravel uses the `bcrypt` hashing driver when hashing data. However, several other hashing drivers are supported, including [argon](https://en.wikipedia.org/wiki/Argon2) and [argon2id](https://en.wikipedia.org/wiki/Argon2). - Network accessline 88
> [!NOTE] > For more information on these options, please refer to the [official PHP documentation regarding Argon hashing](https://secure.php.net/manual/en/function.password-hash.php). - Network accessline 89
> For more information on these options, please refer to the [official PHP documentation regarding Argon hashing](https://secure.php.net/manual/en/function.password-hash.php).
skills/laravel12/references/helpers.md
- Network accessline 2166
// ASSET_URL=http://example.com/assets - Network accessline 2168
$url = asset('img/photo.jpg'); // http://example.com/assets/img/photo.jpg - Network accessline 2255
$uri = uri('https://example.com') - Network accessline 2642
The `fake` function resolves a [Faker](https://github.com/FakerPHP/Faker) singleton from the container, which can be useful when creating fake data in model factories, database seeding, tests, and prototyping views: - Network accessline 2702
The `literal` function creates a new [stdClass](https://www.php.net/manual/en/class.stdclass.php) instance with the given named arguments as properties: - Network accessline 3255
Laravel includes [Carbon](https://carbon.nesbot.com/guide/getting-started/introduction.html), a powerful date and time manipulation library. To create a new `Carbon` instance, you may invoke the `now` function. This function is globally ava - Network accessline 3281
For a thorough discussion of Carbon and its features, please consult the [official Carbon documentation](https://carbon.nesbot.com/guide/getting-started/introduction.html). - Network accessline 3286
Laravel also offers `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `weeks`, `months`, and `years` functions that return `CarbonInterval` instances, which extend PHP's [DateInterval](https://www.php.net/manual/en/class.dateinterval.p - Network accessline 3324
> [!WARNING] > If you have the [Swoole PHP extension](https://www.php.net/manual/en/book.swoole.php) installed, Laravel's `defer` function may conflict with Swoole's own global `defer` function, leading to web server errors. Make sure you c - Network accessline 3325
> If you have the [Swoole PHP extension](https://www.php.net/manual/en/book.swoole.php) installed, Laravel's `defer` function may conflict with Swoole's own global `defer` function, leading to web server errors. Make sure you call Laravel's - Network accessline 3690
// Generate a URI instance from the given string... $uri = Uri::of('https://example.com/path'); - Network accessline 3691
$uri = Uri::of('https://example.com/path'); - Network accessline 3708
$uri = Uri::of('https://example.com') - Network accessline 3772
$uri = Uri::of('https://example.com');
skills/laravel12/references/homestead.md
- Network accessline 42
Laravel strives to make the entire PHP development experience delightful, including your local development environment. [Laravel Homestead](https://github.com/laravel/homestead) is an official, pre-packaged Vagrant box that provides you a w - Network accessline 44
[Vagrant](https://www.vagrantup.com) provides a simple, elegant way to manage and provision Virtual Machines. Vagrant boxes are completely disposable. If something goes wrong, you can destroy and re-create the box in minutes! - Network accessline 149
Before launching your Homestead environment, you must install [Vagrant](https://developer.hashicorp.com/vagrant/downloads) as well as one of the following supported providers: - Network accessline 151
- [VirtualBox 6.1.x](https://www.virtualbox.org/wiki/Download_Old_Builds_6_1) - Network accessline 152
- [Parallels](https://www.parallels.com/products/desktop/) - Network accessline 156
To use the Parallels provider, you will need to install [Parallels Vagrant plug-in](https://github.com/Parallels/vagrant-parallels). It is free of charge. - Network accessline 164
git clone https://github.com/laravel/homestead.git ~/Homestead - Network accessline 225
To enable [NFS](https://developer.hashicorp.com/vagrant/docs/synced-folders/nfs), you may add a `type` option to your folder mapping: - Network accessline 234
> [!WARNING] > When using NFS on Windows, you should consider installing the [vagrant-winnfsd](https://github.com/winnfsd/vagrant-winnfsd) plug-in. This plug-in will maintain the correct user / group permissions for files and directories wi - Network accessline 235
> When using NFS on Windows, you should consider installing the [vagrant-winnfsd](https://github.com/winnfsd/vagrant-winnfsd) plug-in. This plug-in will maintain the correct user / group permissions for files and directories within the Home - Network accessline 237
You may also pass any options supported by Vagrant's [Synced Folders](https://developer.hashicorp.com/vagrant/docs/synced-folders/basic_usage) by listing them under the `options` key: - Network accessline 268
Homestead publishes hostnames using `mDNS` for automatic host resolution. If you set `hostname: homestead` in your `Homestead.yaml` file, the host will be available at `homestead.local`. macOS, iOS, and Linux desktop distributions include ` - Network accessline 279
http://homestead.test - Network accessline 325
Next, run the `vagrant up` command in your terminal and access your project at `http://homestead.test` in your browser. Remember, you will still need to add an `/etc/hosts` file entry for `homestead.test` or the domain of your choice if you - Network accessline 378
> [!NOTE] > Check out the [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current) to learn how to customize your configuration. - Network accessline 379
> Check out the [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current) to learn how to customize your configuration. - Network accessline 394
The default Neo4j installation will set the database username to `homestead` and the corresponding password to `secret`. To access the Neo4j browser, visit `http://homestead.test:7474` via your web browser. The ports `7687` (Bolt), `7474` ( - Network accessline 425
These commands pull the latest Homestead code from the GitHub repository, fetch the latest tags, and then check out the latest tagged release. You can find the latest stable release version on Homestead's [GitHub releases page](https://gith - Network accessline 651
[Mailpit](https://github.com/axllent/mailpit) allows you to intercept your outgoing email and examine it without actually sending the mail to its recipients. To get started, update your application's `.env` file to use the following mail se - Network accessline 662
Once Mailpit has been configured, you may access the Mailpit dashboard at `http://localhost:8025`. - Network accessline 667
[Minio](https://github.com/minio/minio) is an open source object storage server with an Amazon S3 compatible API. To install Minio, update your `Homestead.yaml` file with the following configuration option in the [features](#installing-opti - Network accessline 671
By default, Minio is available on port 9600. You may access the Minio control panel by visiting `http://localhost:9600`. The default access key is `homestead`, while the default secret key is `secretkey`. When accessing Minio, you should al - Network accessline 676
AWS_USE_PATH_STYLE_ENDPOINT=true AWS_ENDPOINT=http://localhost:9600 - Network accessline 677
AWS_ENDPOINT=http://localhost:9600 - Network accessline 735
Homestead includes support for step debugging using [Xdebug](https://xdebug.org). For example, you can access a page in your browser and PHP will connect to your IDE to allow inspection and modification of the running code. - Dangerous shell operationline 737
By default, Xdebug is already running and ready to accept connections. If you need to enable Xdebug on the CLI, execute the `sudo phpenmod xdebug` command within your Homestead virtual machine. Next, follow your IDE's instructions to enable - Network accessline 737
By default, Xdebug is already running and ready to accept connections. If you need to enable Xdebug on the CLI, execute the `sudo phpenmod xdebug` command within your Homestead virtual machine. Next, follow your IDE's instructions to enable - Dangerous shell operationline 740
> Xdebug causes PHP to run significantly slower. To disable Xdebug, run `sudo phpdismod xdebug` within your Homestead virtual machine and restart the FPM service. - Network accessline 766
[Blackfire](https://blackfire.io/docs/introduction) is a service for profiling web requests and CLI applications. It offers an interactive user interface which displays profile data in call-graphs and timelines. It is built for use in devel - Network accessline 768
The [Blackfire Player](https://blackfire.io/docs/player/index) is an open-source Web Crawling, Web Testing, and Web Scraping application which can work jointly with Blackfire in order to script profiling scenarios. - Network accessline 781
Blackfire server credentials and client credentials [require a Blackfire account](https://blackfire.io/signup). Blackfire offers various options to profile an application, including a CLI tool and browser extension. Please [review the Black - Network accessline 794
To enable a [bridged](https://developer.hashicorp.com/vagrant/docs/networking/public_network) interface, configure a `bridge` setting for the network and change the network type to `public_network`: - Network accessline 803
To enable [DHCP](https://developer.hashicorp.com/vagrant/docs/networking/public_network#dhcp), just remove the `ip` option from your configuration: - Dangerous shell operationline 829
sudo apt-get -y \
skills/laravel12/references/horizon.md
- Network accessline 30
[Laravel Horizon](https://github.com/laravel/horizon) provides a beautiful dashboard and code-driven configuration for your Laravel powered [Redis queues](/docs/{{version}}/queues). Horizon allows you to easily monitor key metrics of your q - Network accessline 34
<img src="https://laravel.com/img/docs/horizon-example.png"> - Network accessline 39
> [!WARNING] > Laravel Horizon requires that you use [Redis](https://redis.io) to power your queue. Therefore, you should ensure that your queue connection is set to `redis` in your application's `config/queue.php` configuration file. Horiz - Network accessline 40
> Laravel Horizon requires that you use [Redis](https://redis.io) to power your queue. Therefore, you should ensure that your queue connection is set to `redis` in your application's `config/queue.php` configuration file. Horizon is not com - Network accessline 437
When upgrading to a new major version of Horizon, it's important that you carefully review [the upgrade guide](https://github.com/laravel/horizon/blob/master/UPGRADE.md). - Network accessline 485
During local development, you may run the `horizon:listen` command. When using the `horizon:listen` command, you don't have to manually restart Horizon when you want to reload your updated code. Before using this feature, you should ensure - Access to secretsline 515
[Credential-related source omitted] - Dangerous shell operationline 536
sudo apt-get install supervisor - Network accessline 539
> [!NOTE] > If configuring Supervisor yourself sounds overwhelming, consider using [Laravel Cloud](https://cloud.laravel.com), which can manage background processes for your Laravel applications. - Network accessline 540
> If configuring Supervisor yourself sounds overwhelming, consider using [Laravel Cloud](https://cloud.laravel.com), which can manage background processes for your Laravel applications. - Dangerous shell operationline 570
sudo supervisorctl reread - Dangerous shell operationline 572
sudo supervisorctl update - Dangerous shell operationline 574
sudo supervisorctl start horizon - Network accessline 577
> [!NOTE] > For more information on running Supervisor, consult the [Supervisor documentation](http://supervisord.org/index.html). - Network accessline 578
> For more information on running Supervisor, consult the [Supervisor documentation](http://supervisord.org/index.html).
skills/laravel12/references/http-client.md
- Network accessline 26
Laravel provides an expressive, minimal API around the [Guzzle HTTP client](http://docs.guzzlephp.org/en/stable/), allowing you to quickly make outgoing HTTP requests to communicate with other web applications. Laravel's wrapper around Guzz - Network accessline 36
$response = Http::get('http://example.com'); - Network accessline 59
return Http::get('http://example.com/users/1')['name']; - Network accessline 86
The HTTP client also allows you to construct request URLs using the [URI template specification](https://www.rfc-editor.org/rfc/rfc6570). To define the URL parameters that can be expanded by your URI template, you may use the `withUrlParame - Network accessline 89
Http::withUrlParameters([ 'endpoint' => 'https://laravel.com', - Network accessline 90
'endpoint' => 'https://laravel.com', - Network accessline 103
return Http::dd()->get('http://example.com'); - Network accessline 114
$response = Http::post('http://example.com/users', [ - Network accessline 126
$response = Http::get('http://example.com/users', [ - Network accessline 136
'name' => 'Taylor', 'page' => 1, ])->get('http://example.com/users'); - Network accessline 138
])->get('http://example.com/users'); - Network accessline 147
$response = Http::asForm()->post('http://example.com/users', [ - Network accessline 159
$response = Http::withBody( base64_encode($photo), 'image/jpeg' )->post('http://example.com/photo'); - Network accessline 161
)->post('http://example.com/photo'); - Network accessline 170
$response = Http::attach( 'attachment', file_get_contents('photo.jpg'), 'photo.jpg', ['Content-Type' => 'image/jpeg'] )->post('http://example.com/attachments'); - Network accessline 172
)->post('http://example.com/attachments'); - Network accessline 180
$response = Http::attach( 'attachment', $photo, 'photo.jpg' )->post('http://example.com/attachments'); - Network accessline 182
)->post('http://example.com/attachments'); - Network accessline 192
'X-First' => 'foo', 'X-Second' => 'bar' ])->post('http://example.com/users', [ - Network accessline 193
'X-Second' => 'bar' ])->post('http://example.com/users', [ 'name' => 'Taylor', - Network accessline 194
])->post('http://example.com/users', [ - Network accessline 202
$response = Http::accept('application/json')->get('http://example.com/users'); - Network accessline 208
$response = Http::acceptJson()->get('http://example.com/users'); - Network accessline 216
])->replaceHeaders([ 'X-Replacement' => 'bar', ])->post('http://example.com/users', [ - Network accessline 217
'X-Replacement' => 'bar', ])->post('http://example.com/users', [ 'name' => 'Taylor', - Network accessline 218
])->post('http://example.com/users', [ - Network accessline 423
Since Laravel's HTTP client is powered by Guzzle, you may take advantage of [Guzzle Middleware](https://docs.guzzlephp.org/en/stable/handlers-and-middleware.html) to manipulate the outgoing request or inspect the incoming response. To manip - Network accessline 431
return $request->withHeader('X-Example', 'Value'); } )->get('http://example.com'); - Network accessline 433
)->get('http://example.com'); - Network accessline 448
return $response; } )->get('http://example.com'); - Network accessline 450
)->get('http://example.com'); - Network accessline 473
You may specify additional [Guzzle request options](http://docs.guzzlephp.org/en/stable/request-options.html) for an outgoing request using the `withOptions` method. The `withOptions` method accepts an array of key / value pairs: - Network accessline 476
$response = Http::withOptions([ 'debug' => true, ])->get('http://example.com/users'); - Network accessline 478
])->get('http://example.com/users'); - Network accessline 514
$responses = Http::pool(fn (Pool $pool) => [ $pool->get('http://localhost/first'), - Network accessline 515
$pool->get('http://localhost/first'), - Network accessline 516
$pool->get('http://localhost/second'), - Network accessline 517
$pool->get('http://localhost/third'), - Network accessline 531
$responses = Http::pool(fn (Pool $pool) => [ $pool->as('first')->get('http://localhost/first'), - Network accessline 532
$pool->as('first')->get('http://localhost/first'), - Network accessline 533
$pool->as('second')->get('http://localhost/second'), - Network accessline 534
$pool->as('third')->get('http://localhost/third'), - Network accessline 561
$responses = Http::pool(fn (Pool $pool) => [ $pool->withHeaders($headers)->get('http://laravel.test/test'), - Network accessline 562
$pool->withHeaders($headers)->get('http://laravel.test/test'), - Network accessline 563
$pool->withHeaders($headers)->get('http://laravel.test/test'), - Network accessline 564
$pool->withHeaders($headers)->get('http://laravel.test/test'), - Network accessline 580
$responses = Http::batch(fn (Batch $batch) => [ $batch->get('http://localhost/first'), - Network accessline 581
$batch->get('http://localhost/first'), - Network accessline 582
$batch->get('http://localhost/second'), - Network accessline 583
$batch->get('http://localhost/third'), ])->before(function (Batch $batch) { // The batch has been created but no requests have been initialized... - Network accessline 600
$responses = Http::batch(fn (Batch $batch) => [ $batch->as('first')->get('http://localhost/first'), - Network accessline 601
$batch->as('first')->get('http://localhost/first'), - Network accessline 602
$batch->as('second')->get('http://localhost/second'), - Network accessline 603
$batch->as('third')->get('http://localhost/third'), - Network accessline 650
$responses = Http::batch(fn (Batch $batch) => [ $batch->get('http://localhost/first'), - Network accessline 651
$batch->get('http://localhost/first'), - Network accessline 652
$batch->get('http://localhost/second'), - Network accessline 653
$batch->get('http://localhost/third'), ])->then(function (Batch $batch, array $results) { // All requests completed successfully... - Network accessline 673
return Http::withHeaders([ 'X-Example' => 'example', ])->baseUrl('https://github.com'); - Network accessline 674
'X-Example' => 'example', ])->baseUrl('https://github.com'); }); - Network accessline 675
])->baseUrl('https://github.com'); - Network accessline 823
Http::withHeaders([ 'X-First' => 'foo', ])->post('http://example.com/users', [ - Network accessline 824
'X-First' => 'foo', ])->post('http://example.com/users', [ 'name' => 'Taylor', - Network accessline 825
])->post('http://example.com/users', [ - Network accessline 830
Http::assertSent(function (Request $request) { return $request->hasHeader('X-First', 'foo') && $request->url() == 'http://example.com/users' && - Network accessline 831
return $request->hasHeader('X-First', 'foo') && $request->url() == 'http://example.com/users' && $request['name'] == 'Taylor' && - Network accessline 832
$request->url() == 'http://example.com/users' && - Network accessline 846
Http::post('http://example.com/users', [ - Network accessline 851
Http::assertNotSent(function (Request $request) { return $request->url() === 'http://example.com/posts'; - Network accessline 852
return $request->url() === 'http://example.com/posts'; - Network accessline 878
Http::fake([ 'https://laravel.com' => Http::response(status: 500), - Network accessline 879
'https://laravel.com' => Http::response(status: 500), - Network accessline 880
'https://nova.laravel.com/' => Http::response(), - Network accessline 883
Http::get('https://laravel.com'); - Network accessline 884
Http::get('https://nova.laravel.com/'); - Network accessline 897
Http::fake([ 'https://laravel.com' => Http::response(status: 500), - Network accessline 898
'https://laravel.com' => Http::response(status: 500), - Network accessline 899
'https://nova.laravel.com/' => Http::response(), - Network accessline 902
Http::get('https://laravel.com'); - Network accessline 903
Http::get('https://nova.laravel.com/'); - Network accessline 905
$recorded = Http::recorded(function (Request $request, Response $response) { return $request->url() !== 'https://laravel.com' && - Network accessline 906
return $request->url() !== 'https://laravel.com' && - Network accessline 925
// An "ok" response is returned... Http::get('https://github.com/laravel/framework'); - Network accessline 926
Http::get('https://github.com/laravel/framework'); - Network accessline 928
// An exception is thrown... Http::get('https://laravel.com'); - Network accessline 929
Http::get('https://laravel.com'); - Network accessline 939
Http::allowStrayRequests([ 'http://127.0.0.1:5000/*', - Network accessline 940
'http://127.0.0.1:5000/*', - Network accessline 943
// This request is executed... Http::get('http://127.0.0.1:5000/generate'); - Network accessline 944
Http::get('http://127.0.0.1:5000/generate'); - Network accessline 946
// An exception is thrown... Http::get('https://laravel.com'); - Network accessline 947
Http::get('https://laravel.com');
skills/laravel12/references/installation.md
- Network accessline 38
We like to call Laravel a "progressive" framework. By that, we mean that Laravel grows with you. If you're just taking your first steps into web development, Laravel's vast library of documentation, guides, and [video tutorials](https://lar - Network accessline 46
Need extreme scaling? Platforms like [Laravel Cloud](https://cloud.laravel.com) allow you to run your Laravel application at nearly limitless scale. - Network accessline 58
Laravel combines the best packages in the PHP ecosystem to offer the most robust and developer friendly framework available. In addition, thousands of talented developers from around the world have [contributed to the framework](https://git - Network accessline 66
Before creating your first Laravel application, make sure that your local machine has [PHP](https://php.net), [Composer](https://getcomposer.org), and [the Laravel installer](https://github.com/laravel/installer) installed. In addition, you - Dangerous shell operationline 71
/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)" - Network accessline 71
/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)" - Network accessline 75
# Run as administrator... Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadSt - Network accessline 76
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://php.new/inst - Dangerous shell operationline 80
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)" - Network accessline 80
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)" - Network accessline 111
Once you have started the development server, your application will be accessible in your web browser at [http://localhost:8000](http://localhost:8000). Next, you're ready to [start taking your next steps into the Laravel ecosystem](#next-s - Network accessline 157
> [!NOTE] > If you are developing on macOS or Windows and need to install MySQL, PostgreSQL, or Redis locally, consider using [Herd Pro](https://herd.laravel.com/#plans) or [DBngin](https://dbngin.com/). - Network accessline 158
> If you are developing on macOS or Windows and need to install MySQL, PostgreSQL, or Redis locally, consider using [Herd Pro](https://herd.laravel.com/#plans) or [DBngin](https://dbngin.com/). - Network accessline 168
[Laravel Herd](https://herd.laravel.com) is a blazing fast, native Laravel and PHP development environment for macOS and Windows. Herd includes everything you need to get started with Laravel development, including PHP and Nginx. - Network accessline 172
> [!NOTE] > [Herd Pro](https://herd.laravel.com/#plans) augments Herd with additional powerful features, such as the ability to create and manage local MySQL, Postgres, and Redis databases, as well as local mail viewing and log monitoring. - Network accessline 173
> [Herd Pro](https://herd.laravel.com/#plans) augments Herd with additional powerful features, such as the ability to create and manage local MySQL, Postgres, and Redis databases, as well as local mail viewing and log monitoring. - Network accessline 178
If you develop on macOS, you can download the Herd installer from the [Herd website](https://herd.laravel.com). The installer automatically downloads the latest version of PHP and configures your Mac to always run [Nginx](https://www.nginx. - Network accessline 180
Herd for macOS uses [dnsmasq](https://en.wikipedia.org/wiki/Dnsmasq) to support "parked" directories. Any Laravel application in a parked directory will automatically be served by Herd. By default, Herd creates a parked directory at `~/Herd - Network accessline 193
You can learn more about Herd by checking out the [Herd documentation](https://herd.laravel.com/docs). - Network accessline 198
You can download the Windows installer for Herd on the [Herd website](https://herd.laravel.com/windows). After the installation finishes, you can start Herd to complete the onboarding process and access the Herd UI for the first time. - Network accessline 213
You can learn more about Herd by checking out the [Herd documentation for Windows](https://herd.laravel.com/docs/windows). - Network accessline 218
You are free to use any code editor you wish when developing Laravel applications. If you're looking for lightweight and extensible editors, [VS Code](https://code.visualstudio.com) or [Cursor](https://cursor.com) combined with the official - Network accessline 220
For extensive and robust support of Laravel, take a look at [PhpStorm](https://www.jetbrains.com/phpstorm/laravel/?utm_source=laravel.com&utm_medium=link&utm_campaign=laravel-2025&utm_content=partner&ref=laravel-2025), a JetBrains IDE. PhpS - Network accessline 222
For those seeking a cloud-based development experience, [Firebase Studio](https://firebase.studio/) provides instant access to building with Laravel directly in your browser. With zero setup required, Firebase Studio makes it easy to start - Network accessline 227
[Laravel Boost](https://github.com/laravel/boost) is a powerful tool that bridges the gap between AI coding agents and Laravel applications. Boost provides AI agents with Laravel-specific context, tools, and guidelines so they can generate - Network accessline 252
> [!NOTE] > To learn more about Boost, check out the [Laravel Boost repository on GitHub](https://github.com/laravel/boost). - Network accessline 253
> To learn more about Boost, check out the [Laravel Boost repository on GitHub](https://github.com/laravel/boost). - Network accessline 281
Laravel may serve as a full stack framework. By "full stack" framework we mean that you are going to use Laravel to route requests to your application and render your frontend via [Blade templates](/docs/{{version}}/blade) or a single-page - Network accessline 283
If this is how you plan to use Laravel, you may want to check out our documentation on [frontend development](/docs/{{version}}/frontend), [routing](/docs/{{version}}/routing), [views](/docs/{{version}}/views), or the [Eloquent ORM](/docs/{ - Network accessline 293
Laravel may also serve as an API backend to a JavaScript single-page application or mobile application. For example, you might use Laravel as an API backend for your [Next.js](https://nextjs.org) application. In this context, you may use La
skills/laravel12/references/localization.md
- Network accessline 220
If you attempt to provide an object as a translation placeholder, the object's `__toString` method will be invoked. The [__toString](https://www.php.net/manual/en/language.oop5.magic.php#object.tostring) method is one of PHP's built-in "mag
skills/laravel12/references/logging.md
- Network accessline 28
Under the hood, Laravel utilizes the [Monolog](https://github.com/Seldaek/monolog) library, which provides support for a variety of powerful log handlers. Laravel makes it a cinch to configure these handlers, allowing you to mix and match t - Network accessline 105
The `papertrail` channel requires `host` and `port` configuration options. These may be defined via the `PAPERTRAIL_URL` and `PAPERTRAIL_PORT` environment variables. You can obtain these values from [Papertrail](https://help.papertrailapp.c - Network accessline 110
The `slack` channel requires a `url` configuration option. This value may be defined via the `LOG_SLACK_WEBHOOK_URL` environment variable. This URL should match a URL for an [incoming webhook](https://slack.com/apps/A0F7XDUAZ-incoming-webho - Network accessline 177
Take note of the `level` configuration option present on the `syslog` and `slack` channel configurations in the example above. This option determines the minimum "level" a message must be in order to be logged by the channel. Monolog, which - Network accessline 194
You may write information to the logs using the `Log` [facade](/docs/{{version}}/facades). As previously mentioned, the logger provides the eight logging levels defined in the [RFC 5424 specification](https://tools.ietf.org/html/rfc5424): * - Network accessline 416
Monolog has a variety of [available handlers](https://github.com/Seldaek/monolog/tree/main/src/Monolog/Handler) and Laravel does not include a built-in channel for each one. In some cases, you may wish to create a custom channel that is mer - Network accessline 460
Monolog can also process messages before logging them. You can create your own processors or use the [existing processors offered by Monolog](https://github.com/Seldaek/monolog/tree/main/src/Monolog/Processor). - Network accessline 526
<img src="https://laravel.com/img/docs/pail-example.png"> - Network accessline 531
> [!WARNING] > Laravel Pail requires the [PCNTL](https://www.php.net/manual/en/book.pcntl.php) PHP extension. - Network accessline 532
> Laravel Pail requires the [PCNTL](https://www.php.net/manual/en/book.pcntl.php) PHP extension.
skills/laravel12/references/mail.md
- Network accessline 39
Sending email doesn't have to be complicated. Laravel provides a clean, simple email API powered by the popular [Symfony Mailer](https://symfony.com/doc/current/mailer.html) component. Laravel and Symfony Mailer provide drivers for sending - Access to secretsline 84
[Credential-related source omitted] - Network accessline 90
If you are not using the United States [Mailgun region](https://documentation.mailgun.com/docs/mailgun/api-reference/#mailgun-regions), you may define your region's endpoint in the `services` configuration file: - Access to secretsline 95
[Credential-related source omitted] - Network accessline 104
To use the [Postmark](https://postmarkapp.com/) driver, install Symfony's Postmark Mailer transport via Composer: - Access to secretsline 114
[Credential-related source omitted] - Network accessline 135
To use the [Resend](https://resend.com/) driver, install Resend's PHP SDK via Composer: - Access to secretsline 145
[Credential-related source omitted] - Access to secretsline 163
[Credential-related source omitted] - Network accessline 168
To utilize AWS [temporary credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) via a session token, you may add a `token` key to your application's SES configuration: - Access to secretsline 173
[Credential-related source omitted] - Access to secretsline 175
[Credential-related source omitted] - Network accessline 179
To interact with SES's [subscription management features](https://docs.aws.amazon.com/ses/latest/dg/sending-email-subscription-management.html), you may return the `X-Ses-List-Management-Options` header in the array returned by the [headers - Network accessline 195
If you would like to define [additional options](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sesv2-2019-09-27.html#sendemail) that Laravel should pass to the AWS SDK's `SendEmail` method when sending an email, you may define an `opti - Access to secretsline 200
[Credential-related source omitted] - Network accessline 266
The round robin transport selects a random mailer from the list of configured mailers and then switches to the next available mailer for each subsequent email. In contrast to `failover` transport, which helps to achieve *[high availability] - Network accessline 748
If your application is using the Mailgun driver, you may consult Mailgun's documentation for more information on [tags](https://documentation.mailgun.com/docs/mailgun/user-manual/tracking-messages/#tags) and [metadata](https://documentation - Network accessline 750
If your application is using Amazon SES to send emails, you should use the `metadata` method to attach [SES "tags"](https://docs.aws.amazon.com/ses/latest/APIReference/API_MessageTag.html) to the message. - Network accessline 1404
Alternatively, you may use a service like [HELO](https://usehelo.com) or [Mailtrap](https://mailtrap.io) and the `smtp` driver to send your email messages to a "dummy" mailbox where you may view them in a true email client. This approach ha - Network accessline 1406
If you are using [Laravel Sail](/docs/{{version}}/sail), you may preview your messages using [Mailpit](https://github.com/axllent/mailpit). When Sail is running, you may access the Mailpit interface at: `http://localhost:8025`. - Access to secretsline 1531
[Credential-related source omitted] - Access to secretsline 1549
[Credential-related source omitted]
skills/laravel12/references/mcp.md
- Network accessline 47
[Laravel MCP](https://github.com/laravel/mcp) provides a simple and elegant way for AI clients to interact with your Laravel application through the [Model Context Protocol](https://modelcontextprotocol.io/docs/getting-started/intro). It of - Network accessline 312
Tools can define [output schemas](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#output-schema) to specify the structure of their responses. This enables better integration with AI clients that need parseable tool res - Network accessline 450
You may enhance your tools with [annotations](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations) to provide additional metadata to AI clients. These annotations help AI models understand the tool's behavior and - Network accessline 602
Tools can return [structured content](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content) using the `structured` method. This provides parseable data for AI clients while maintaining backward compatibil - Network accessline 626
For long-running operations or real-time data streaming, tools can return a [generator](https://www.php.net/manual/en/language.generators.overview.php) from their `handle` method. This enables sending intermediate updates to the client befo - Network accessline 667
[Prompts](https://modelcontextprotocol.io/specification/2025-06-18/server/prompts) enable your server to share reusable prompt templates that AI clients can use to interact with language models. They provide a standardized way to structure - Network accessline 931
[Resources](https://modelcontextprotocol.io/specification/2025-06-18/server/resources) enable your server to expose data and content that AI clients can read and use as context when interacting with language models. They provide a way to sh - Network accessline 1000
[Resource templates](https://modelcontextprotocol.io/specification/2025-06-18/server/resources#resource-templates) enable your server to expose dynamic resources that match URI patterns with variables. Instead of defining a static URI for e - Network accessline 1055
new UriTemplate('file://users/{userId}'); new UriTemplate('file://users/{userId}/files/{fileId}'); new UriTemplate('https://api.example.com/{version}/{resource}/{id}'); - Network accessline 1057
new UriTemplate('https://api.example.com/{version}/{resource}/{id}'); - Network accessline 1208
You may enhance your resources with [annotations](https://modelcontextprotocol.io/specification/2025-06-18/schema#resourceannotations) to provide additional metadata to AI clients. Annotations are added to resources via attributes: - Network accessline 1325
Laravel MCP also supports the `_meta` field as defined in the [MCP specification](https://modelcontextprotocol.io/specification/2025-06-18/basic#meta), which is required by certain MCP clients or integrations. Metadata can be applied to all - Network accessline 1496
The [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) is an interactive tool for testing and debugging your MCP servers. Use it to connect to your server, verify authentication, and try out tools, resources, and prompts.
skills/laravel12/references/middleware.md
- Network accessline 454
Sometimes a middleware may need to do some work after the HTTP response has been sent to the browser. If you define a `terminate` method on your middleware and your web server is using [FastCGI](https://www.php.net/manual/en/install.fpm.php
skills/laravel12/references/migrations.md
- Network accessline 759
> [!NOTE] > Support for spatial types depends on your database driver. Please refer to your database's documentation. If your application is utilizing a PostgreSQL database, you must install the [PostGIS](https://postgis.net) extension befo - Network accessline 760
> Support for spatial types depends on your database driver. Please refer to your database's documentation. If your application is utilizing a PostgreSQL database, you must install the [PostGIS](https://postgis.net) extension before the `ge - Network accessline 771
> [!NOTE] > Support for spatial types depends on your database driver. Please refer to your database's documentation. If your application is utilizing a PostgreSQL database, you must install the [PostGIS](https://postgis.net) extension befo - Network accessline 772
> Support for spatial types depends on your database driver. Please refer to your database's documentation. If your application is utilizing a PostgreSQL database, you must install the [PostGIS](https://postgis.net) extension before the `ge - Network accessline 1301
Please refer to [MySQL's documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html) to determine which operations are compatible with instant column modifications.
skills/laravel12/references/mix.md
- Network accessline 11
[Laravel Mix](https://github.com/laravel-mix/laravel-mix), a package developed by [Laracasts](https://laracasts.com) creator Jeffrey Way, provides a fluent API for defining [webpack](https://webpack.js.org) build steps for your Laravel appl - Network accessline 22
> [!NOTE] > Vite has replaced Laravel Mix in new Laravel installations. For Mix documentation, please visit the [official Laravel Mix](https://laravel-mix.com/) website. If you would like to switch to Vite, please see our [Vite migration gu - Network accessline 23
> Vite has replaced Laravel Mix in new Laravel installations. For Mix documentation, please visit the [official Laravel Mix](https://laravel-mix.com/) website. If you would like to switch to Vite, please see our [Vite migration guide](https
skills/laravel12/references/mocking.md
- Network accessline 74
Similarly, if you want to [spy](http://docs.mockery.io/en/latest/reference/spies.html) on an object, Laravel's base test case class offers a `spy` method as a convenient wrapper around the `Mockery::spy` method. Spies are similar to mocks; - Network accessline 114
We can mock the call to the `Cache` facade by using the `expects` method, which will return an instance of a [Mockery](https://github.com/padraic/mockery) mock. Since facades are actually resolved and managed by the Laravel [service contain - Network accessline 161
If you would like to [spy](http://docs.mockery.io/en/latest/reference/spies.html) on a facade, you may call the `spy` method on the corresponding facade. Spies are similar to mocks; however, spies record any interaction between the spy and
skills/laravel12/references/mongodb.md
- Network accessline 14
[MongoDB](https://www.mongodb.com/resources/products/fundamentals/why-use-mongodb) is one of the most popular NoSQL document-oriented database, used for its high write load (useful for analytics or IoT) and high availability (easy to set re - Network accessline 18
Before using MongoDB with Laravel, we recommend installing and using the `mongodb/laravel-mongodb` package via Composer. The `laravel-mongodb` package is officially maintained by MongoDB, and while MongoDB is natively supported by PHP throu - Network accessline 30
To connect to a MongoDB database, the `mongodb` PHP extension is required. If you are developing locally using [Laravel Herd](https://herd.laravel.com) or installed PHP via `php.new`, you already have this extension installed on your system - Network accessline 36
For more information on installing the MongoDB PHP extension, check out the [MongoDB PHP extension installation instructions](https://www.php.net/manual/en/mongodb.installation.php). - Network accessline 41
The MongoDB Community Server can be used to run MongoDB locally and is available for installation on Windows, macOS, Linux, or as a Docker container. To learn how to install MongoDB, please refer to the [official MongoDB Community installat - Network accessline 50
For hosting MongoDB in the cloud, consider using [MongoDB Atlas](https://www.mongodb.com/cloud/atlas). - Network accessline 51
To access a MongoDB Atlas cluster locally from your application, you will need to [add your own IP address in the cluster's network settings](https://www.mongodb.com/docs/atlas/security/add-ip-address-to-list/) to the project's IP Access Li - Network accessline 92
- [Using Eloquent](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/eloquent-models/), models can be stored in MongoDB collections. In addition to the standard Eloquent features, the Laravel MongoDB package provides addition - Network accessline 93
- [Write complex queries](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/query-builder/) using the query builder. - Network accessline 94
- The `mongodb` [cache driver](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/cache/) is optimized to use MongoDB features such as TTL indexes to automatically clear expired cache entries. - Network accessline 95
- [Dispatch and process queued jobs](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/queues/) with the `mongodb` queue driver. - Network accessline 96
- [Storing files in GridFS](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/filesystems/), via the [GridFS Adapter for Flysystem](https://flysystem.thephpleague.com/docs/adapter/gridfs/). - Network accessline 99
To continue learning how to use MongoDB and Laravel, refer to MongoDB's [Quick Start guide](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/quick-start/).
skills/laravel12/references/notifications.md
- Network accessline 56
In addition to support for [sending email](/docs/{{version}}/mail), Laravel provides support for sending notifications across a variety of delivery channels, including email, SMS (via [Vonage](https://www.vonage.com/communications-apis/), f - Network accessline 126
> [!NOTE] > If you would like to use other delivery channels such as Telegram or Pusher, check out the community driven [Laravel Notification Channels website](http://laravel-notification-channels.com). - Network accessline 127
> If you would like to use other delivery channels such as Telegram or Pusher, check out the community driven [Laravel Notification Channels website](http://laravel-notification-channels.com). - Network accessline 527
<img src="https://laravel.com/img/docs/notification-example-2.png"> - Network accessline 800
If your application is using the Mailgun driver, you may consult Mailgun's documentation for more information on [tags](https://documentation.mailgun.com/docs/mailgun/user-manual/tracking-messages/#tags) and [metadata](https://documentation - Network accessline 802
If your application is using Amazon SES to send emails, you should use the `metadata` method to attach [SES "tags"](https://docs.aws.amazon.com/ses/latest/APIReference/API_MessageTag.html) to the message. - Network accessline 1319
Sending SMS notifications in Laravel is powered by [Vonage](https://www.vonage.com/) (formerly known as Nexmo). Before you can send notifications via Vonage, you need to install the `laravel/vonage-notification-channel` and `guzzlehttp/guzz - Network accessline 1325
The package includes a [configuration file](https://github.com/laravel/vonage-notification-channel/blob/3.x/config/vonage.php). However, you are not required to export this configuration file to your own application. You can simply use the - Network accessline 1448
Additionally, you must create a [Slack App](https://api.slack.com/apps?new_app=1) for your Slack workspace. - Access to secretsline 1457
[Credential-related source omitted] - Network accessline 1471
If a notification supports being sent as a Slack message, you should define a `toSlack` method on the notification class. This method will receive a `$notifiable` entity and should return an `Illuminate\Notifications\Slack\SlackMessage` ins - Network accessline 1544
Slack's Block Kit notification system provides powerful features to [handle user interaction](https://api.slack.com/interactivity/handling). To utilize these features, your Slack App should have "Interactivity" enabled and a "Request URL" c - Network accessline 1546
In the following example, which utilizes the `actionsBlock` method, Slack will send a `POST` request to your "Request URL" with a payload containing the Slack user who clicked the button, the ID of the clicked button, and more. Your applica - Network accessline 1621
If you would like to quickly inspect the blocks you've been building, you can invoke the `dd` method on the `SlackMessage` instance. The `dd` method will generate and dump a URL to Slack's [Block Kit Builder](https://app.slack.com/block-kit
skills/laravel12/references/octane.md
- Network accessline 31
[Laravel Octane](https://github.com/laravel/octane) supercharges your application's performance by serving your application using high-powered application servers, including [FrankenPHP](https://frankenphp.dev/), [Open Swoole](https://opens - Network accessline 54
[FrankenPHP](https://frankenphp.dev) is a PHP application server, written in Go, that supports modern web features like early hints, Brotli, and Zstandard compression. When you install Octane and choose FrankenPHP as your server, Octane wil - Network accessline 100
Typically, you should access your FrankenPHP Sail application via `https://localhost`, as using `https://127.0.0.1` requires additional configuration and is [discouraged](https://frankenphp.dev/docs/known-issues/#using-https127001-with-dock - Network accessline 138
You may consult [the official FrankenPHP documentation](https://frankenphp.dev/docs/docker/) for more information on running FrankenPHP with Docker. - Network accessline 149
This allows you to customize FrankenPHP's configuration beyond the default settings, such as adding custom middleware, configuring advanced routing, or setting up custom directives. You may consult the [official Caddy documentation](https:/ - Network accessline 154
[RoadRunner](https://roadrunner.dev) is powered by the RoadRunner binary, which is built using Go. The first time you start a RoadRunner based Octane server, Octane will offer to download and install the RoadRunner binary for you. - Network accessline 259
By default, Octane will start the server on port 8000, so you may access your application in a web browser via `http://localhost:8000`. - Network accessline 281
By default, applications running via Octane generate links prefixed with `http://`. The `OCTANE_HTTPS` environment variable, used within your application's `config/octane.php` configuration file, can be set to `true` when serving your appli - Network accessline 290
> [!NOTE] > If you aren't quite ready to manage your own server configuration or aren't comfortable configuring all of the various services needed to run a robust Laravel Octane application, check out [Laravel Cloud](https://cloud.laravel.c - Network accessline 291
> If you aren't quite ready to manage your own server configuration or aren't comfortable configuring all of the various services needed to run a robust Laravel Octane application, check out [Laravel Cloud](https://cloud.laravel.com), which - Network accessline 346
proxy_pass http://127.0.0.1:8000$suffix; - Network accessline 360
Before using this feature, you should ensure that [Node](https://nodejs.org) is installed within your local development environment. In addition, you should install the [Chokidar](https://github.com/paulmillr/chokidar) file-watching library - Network accessline 651
This cache driver is powered by [Swoole tables](https://www.swoole.co.uk/docs/modules/swoole-table). All data stored in the cache is available to all workers on the server. However, the cached data will be flushed when the server is restart - Network accessline 679
When using Swoole, you may define and interact with your own arbitrary [Swoole tables](https://www.swoole.co.uk/docs/modules/swoole-table). Swoole tables provide extreme performance throughput and the data in these tables can be accessed by
skills/laravel12/references/packages.md
- Network accessline 24
Packages are the primary way of adding functionality to Laravel. Packages might be anything from a great way to work with dates like [Carbon](https://github.com/briannesbitt/Carbon) or a package that allows you to associate files with Eloqu - Network accessline 33
When writing a Laravel application, it generally does not matter if you use contracts or facades since both provide essentially equal levels of testability. However, when writing packages, your package will not typically have access to all
skills/laravel12/references/pagination.md
- Network accessline 23
By default, the HTML generated by the paginator is compatible with the [Tailwind CSS framework](https://tailwindcss.com/); however, Bootstrap pagination support is also available. - Network accessline 129
http://localhost/users?cursor=eyJpZCI6MTUsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0 - Network accessline 177
> [!WARNING] > When manually creating a paginator instance, you should manually "slice" the array of results you pass to the paginator. If you're unsure how to do this, check out the [array_slice](https://secure.php.net/manual/en/function.a - Network accessline 178
> When manually creating a paginator instance, you should manually "slice" the array of results you pass to the paginator. If you're unsure how to do this, check out the [array_slice](https://secure.php.net/manual/en/function.array-slice.ph - Network accessline 183
By default, links generated by the paginator will match the current request's URI. However, the paginator's `withPath` method allows you to customize the URI used by the paginator when generating links. For example, if you want the paginato - Network accessline 246
The `links` method will render the links to the rest of the pages in the result set. Each of these links will already contain the proper `page` query string variable. Remember, the HTML generated by the `links` method is compatible with the - Network accessline 276
"current_page": 1, "last_page": 4, "current_page_url": "http://laravel.app?page=1", - Network accessline 277
"last_page": 4, "current_page_url": "http://laravel.app?page=1", "first_page_url": "http://laravel.app?page=1", - Network accessline 278
"current_page_url": "http://laravel.app?page=1", - Network accessline 279
"first_page_url": "http://laravel.app?page=1", - Network accessline 280
"last_page_url": "http://laravel.app?page=4", - Network accessline 281
"next_page_url": "http://laravel.app?page=2", - Network accessline 282
"prev_page_url": null, "path": "http://laravel.app", "from": 1, - Network accessline 283
"path": "http://laravel.app", - Network accessline 300
By default, the views rendered to display the pagination links are compatible with the [Tailwind CSS](https://tailwindcss.com) framework. However, if you are not using Tailwind, you are free to define your own views to render these links. W - Network accessline 344
Laravel includes pagination views built using [Bootstrap CSS](https://getbootstrap.com/). To use these views instead of the default Tailwind views, you may call the paginator's `useBootstrapFour` or `useBootstrapFive` methods within the `bo
skills/laravel12/references/passport.md
- Network accessline 53
[Laravel Passport](https://github.com/laravel/passport) provides a full OAuth2 server implementation for your Laravel application in a matter of minutes. Passport is built on top of the [League OAuth2 server](https://github.com/thephpleague - Network accessline 55
> [!NOTE] > This documentation assumes you are already familiar with OAuth2. If you do not know anything about OAuth2, consider familiarizing yourself with the general [terminology](https://oauth2.thephpleague.com/terminology/) and features - Network accessline 56
> This documentation assumes you are already familiar with OAuth2. If you do not know anything about OAuth2, consider familiarizing yourself with the general [terminology](https://oauth2.thephpleague.com/terminology/) and features of OAuth2 - Network accessline 156
When upgrading to a new major version of Passport, it's important that you carefully review [the upgrade guide](https://github.com/laravel/passport/blob/master/UPGRADE.md). - Network accessline 237
Then, you may copy the routes defined by Passport in [its routes file](https://github.com/laravel/passport/blob/master/routes/web.php) to your application's `routes/web.php` file and modify them to your liking: - Access to secretsline 283
[Credential-related source omitted] - Network accessline 302
https://third-party-app.com/callback,https://example.com/oauth/redirect - Network accessline 318
user: $user, name: 'Example App', redirectUris: ['https://third-party-app.com/callback'], - Network accessline 319
name: 'Example App', redirectUris: ['https://third-party-app.com/callback'], confidential: false, - Network accessline 320
redirectUris: ['https://third-party-app.com/callback'], - Network accessline 346
$query = http_build_query([ 'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', - Network accessline 347
'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', 'response_type' => 'code', - Network accessline 348
'redirect_uri' => 'https://third-party-app.com/callback', - Network accessline 355
return redirect('https://passport-app.test/oauth/authorize?'.$query); - Network accessline 415
$response = Http::asForm()->post('https://passport-app.test/oauth/token', [ - Network accessline 417
[Credential-related source omitted] - Network accessline 418
[Credential-related source omitted] - Access to secretsline 418
[Credential-related source omitted] - Network accessline 419
'redirect_uri' => 'https://third-party-app.com/callback', - Access to secretsline 427
[Credential-related source omitted] - Network accessline 471
$response = Http::asForm()->post('https://passport-app.test/oauth/token', [ - Access to secretsline 475
[Credential-related source omitted] - Access to secretsline 482
[Credential-related source omitted] - Network accessline 557
The code verifier should be a random string of between 43 and 128 characters containing letters, numbers, and `"-"`, `"."`, `"_"`, `"~"` characters, as defined in the [RFC 7636 specification](https://tools.ietf.org/html/rfc7636). - Network accessline 587
$query = http_build_query([ 'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', - Network accessline 588
'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', 'response_type' => 'code', - Network accessline 589
'redirect_uri' => 'https://third-party-app.com/callback', - Network accessline 598
return redirect('https://passport-app.test/oauth/authorize?'.$query); - Network accessline 623
$response = Http::asForm()->post('https://passport-app.test/oauth/token', [ - Network accessline 624
'grant_type' => 'authorization_code', 'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', - Network accessline 625
'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', 'code_verifier' => $codeVerifier, - Network accessline 626
'redirect_uri' => 'https://third-party-app.com/callback', - Access to secretsline 678
[Credential-related source omitted] - Network accessline 715
$response = Http::asForm()->post('https://passport-app.test/oauth/device/code', [ - Network accessline 747
$response = Http::asForm()->post('https://passport-app.test/oauth/token', [ - Access to secretsline 750
[Credential-related source omitted] - Access to secretsline 762
[Credential-related source omitted] - Network accessline 767
> [!WARNING] > We no longer recommend using password grant tokens. Instead, you should choose [a grant type that is currently recommended by OAuth2 Server](https://oauth2.thephpleague.com/authorization-server/which-grant/). - Network accessline 768
> We no longer recommend using password grant tokens. Instead, you should choose [a grant type that is currently recommended by OAuth2 Server](https://oauth2.thephpleague.com/authorization-server/which-grant/). - Access to secretsline 796
[Credential-related source omitted] - Network accessline 801
$response = Http::asForm()->post('https://passport-app.test/oauth/token', [ - Access to secretsline 804
[Credential-related source omitted] - Network accessline 824
$response = Http::asForm()->post('https://passport-app.test/oauth/token', [ - Access to secretsline 827
[Credential-related source omitted] - Network accessline 902
> [!WARNING] > We no longer recommend using implicit grant tokens. Instead, you should choose [a grant type that is currently recommended by OAuth2 Server](https://oauth2.thephpleague.com/authorization-server/which-grant/). - Network accessline 903
> We no longer recommend using implicit grant tokens. Instead, you should choose [a grant type that is currently recommended by OAuth2 Server](https://oauth2.thephpleague.com/authorization-server/which-grant/). - Network accessline 931
$query = http_build_query([ 'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', - Network accessline 932
'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', 'response_type' => 'token', - Network accessline 933
'redirect_uri' => 'https://third-party-app.com/callback', - Network accessline 940
return redirect('https://passport-app.test/oauth/authorize?'.$query); - Network accessline 984
$response = Http::asForm()->post('https://passport-app.test/oauth/token', [ - Access to secretsline 987
[Credential-related source omitted] - Access to secretsline 991
[Credential-related source omitted] - Network accessline 1102
[Credential-related source omitted] - Network accessline 1104
])->get('https://passport-app.test/api/user'); - Network accessline 1163
$query = http_build_query([ 'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', - Network accessline 1164
'client_id' => 'your-client-id', 'redirect_uri' => 'https://third-party-app.com/callback', 'response_type' => 'code', - Network accessline 1165
'redirect_uri' => 'https://third-party-app.com/callback', - Network accessline 1170
return redirect('https://passport-app.test/oauth/authorize?'.$query); - Access to secretsline 1278
[Credential-related source omitted] - Network accessline 1305
When using this method of authentication, you will need to ensure a valid CSRF token header is included in your requests. The default Laravel JavaScript scaffolding included with the skeleton application and all starter kits includes an [Ax
skills/laravel12/references/passwords.md
skills/laravel12/references/pennant.md
- Network accessline 37
[Laravel Pennant](https://github.com/laravel/pennant) is a simple and light-weight feature flag package - without the cruft. Feature flags enable you to incrementally roll out new application features with confidence, A/B test new interface - Network accessline 1032
Now, we just need to implement each of these methods using a Redis connection. For an example of how to implement each of these methods, take a look at the `Laravel\Pennant\Drivers\DatabaseDriver` in the [Pennant source code](https://github
skills/laravel12/references/pint.md
- Network accessline 16
[Laravel Pint](https://github.com/laravel/pint) is an opinionated PHP code style fixer for minimalists. Pint is built on top of [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) and makes it simple to ensure that your code style - Network accessline 145
Pint is built on top of [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer). Therefore, you may use any of its rules to fix code style issues in your project: [PHP CS Fixer Configurator](https://mlocati.github.io/php-cs-fixer-confi - Network accessline 186
To automate linting your project with Laravel Pint, you can configure [GitHub Actions](https://github.com/features/actions) to run Pint whenever new code is pushed to GitHub. First, be sure to grant "Read and write permissions" to workflows
skills/laravel12/references/precognition.md
- Network accessline 22
> [!NOTE] > As of Inertia 2.3, Precognition support is built-in. Please consult the [Inertia Forms documentation](https://inertiajs.com/docs/v2/the-basics/forms) for more information. Earlier Inertia versions require Precognition 0.x. - Network accessline 23
> As of Inertia 2.3, Precognition support is built-in. Please consult the [Inertia Forms documentation](https://inertiajs.com/docs/v2/the-basics/forms) for more information. Earlier Inertia versions require Precognition 0.x. - Network accessline 535
The Precognition validation libraries use the [Axios](https://github.com/axios/axios) HTTP client to send requests to your application's backend. For convenience, the Axios instance may be customized if required by your application. For exa
skills/laravel12/references/processes.md
- Network accessline 26
Laravel provides an expressive, minimal API around the [Symfony Process component](https://symfony.com/doc/current/components/process.html), allowing you to conveniently invoke external processes from your Laravel application. Laravel's pro - Network accessline 267
You may use the `signal` method to send a "signal" to the running process. A list of predefined signal constants can be found within the [PHP documentation](https://www.php.net/manual/en/pcntl.constants.php):
skills/laravel12/references/prompts.md
- Network accessline 31
[Laravel Prompts](https://github.com/laravel/prompts) is a PHP package for adding beautiful and user-friendly forms to your command-line applications, with browser-like features including placeholder text and validation. - Network accessline 33
<img src="https://laravel.com/img/docs/prompts-example.png"> - Network accessline 932
$response = spin( callback: fn () => Http::get('http://example.com'), - Network accessline 933
callback: fn () => Http::get('http://example.com'), - Network accessline 938
> [!WARNING] > The `spin` function requires the [PCNTL](https://www.php.net/manual/en/book.pcntl.php) PHP extension to animate the spinner. When this extension is not available, a static version of the spinner will appear instead. - Network accessline 939
> The `spin` function requires the [PCNTL](https://www.php.net/manual/en/book.pcntl.php) PHP extension to animate the spinner. When this extension is not available, a static version of the spinner will appear instead. - Network accessline 1022
For this reason, Laravel Prompts supports falling back to an alternative implementation such as the [Symfony Console Question Helper](https://symfony.com/doc/current/components/console/helpers/questionhelper.html).
skills/laravel12/references/pulse.md
- Network accessline 28
[Laravel Pulse](https://github.com/laravel/pulse) delivers at-a-glance insights into your application's performance and usage. With Pulse, you can track down bottlenecks like slow jobs and endpoints, find your most active users, and more. - Network accessline 104
The dashboard is powered by [Livewire](https://livewire.laravel.com/), and allows you to customize the cards and layout without needing to rebuild any JavaScript assets. - Network accessline 351
// ... 'groups' => [ // '#^https://api\.github\.com/repos/.*$#' => 'api.github.com/repos/*', - Network accessline 352
'groups' => [ // '#^https://api\.github\.com/repos/.*$#' => 'api.github.com/repos/*', // '#^https?://([^/]*).*$#' => '\1', - Network accessline 353
// '#^https://api\.github\.com/repos/.*$#' => 'api.github.com/repos/*', - Network accessline 546
Pulse allows you to build custom cards to display data relevant to your application's specific needs. Pulse uses [Livewire](https://livewire.laravel.com), so you may want to [review its documentation](https://livewire.laravel.com/docs) befo - Network accessline 569
When using Livewire's [lazy loading](https://livewire.laravel.com/docs/lazy) feature, The `Card` component will automatically provide a placeholder that respects the `cols` and `rows` attributes passed to your component. - Network accessline 653
When using Tailwind CSS, you should create a dedicated CSS entrypoint. The following example excludes Tailwind's [Preflight](https://tailwindcss.com/docs/preflight) base styles which are already included by Pulse, and scopes Tailwind using
skills/laravel12/references/queries.md
- Network accessline 1395
The `insertOrIgnore` method will ignore errors while inserting records into the database. When using this method, you should be aware that duplicate record errors will be ignored and other types of errors may also be ignored depending on th
skills/laravel12/references/queues.md
- Network accessline 66
Laravel queues provide a unified queueing API across a variety of different queue backends, such as [Amazon SQS](https://aws.amazon.com/sqs/), [Redis](https://redis.io), or even a relational database. - Network accessline 68
Laravel's queue configuration options are stored in your application's `config/queue.php` configuration file. In this file, you will find connection configurations for each of the queue drivers that are included with the framework, includin - Network accessline 121
If your Redis queue connection uses a [Redis Cluster](https://redis.io/docs/latest/operate/rs/databases/durability-ha/clustering), your queue names must contain a [key hash tag](https://redis.io/docs/latest/develop/using-commands/keyspace/# - Network accessline 163
- Beanstalkd: `pda/pheanstalk ~5.0` - Redis: `predis/predis ~2.0` or phpredis PHP extension - [MongoDB](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/queues/): `mongodb/laravel-mongodb` - Network accessline 165
- [MongoDB](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/current/queues/): `mongodb/laravel-mongodb` - Network accessline 264
If you are using [PHP constructor property promotion](https://www.php.net/manual/en/language.oop5.decon.php#language.oop5.decon.constructor.promotion) and would like to indicate that an Eloquent model should not have its relations serialize - Network accessline 1442
Sometimes, IO blocking processes such as sockets or outgoing HTTP connections may not respect your specified timeout. Therefore, when using these features, you should always attempt to specify a timeout using their APIs as well. For example - Network accessline 1444
> [!WARNING] > The [PCNTL](https://www.php.net/manual/en/book.pcntl.php) PHP extension must be installed in order to specify job timeouts. In addition, a job's "timeout" value should always be less than its ["retry after"](#job-expiration) - Network accessline 1445
> The [PCNTL](https://www.php.net/manual/en/book.pcntl.php) PHP extension must be installed in order to specify job timeouts. In addition, a job's "timeout" value should always be less than its ["retry after"](#job-expiration) value. Otherw - Network accessline 1467
Laravel supports [Amazon SQS FIFO (First-In-First-Out)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fifo-queues.html) queues, allowing you to process jobs in the exact order they were sent while ensuring e - Network accessline 1697
$response = Http::throw()->get( "https://chat.laravel.test/?user={$this->user->uuid}" - Network accessline 1698
"https://chat.laravel.test/?user={$this->user->uuid}" - Network accessline 2078
Laravel also provides support for storing batch meta information in [DynamoDB](https://aws.amazon.com/dynamodb) instead of a relational database. However, you will need to manually create a DynamoDB table to store all of the batch records. - Access to secretsline 2104
[Credential-related source omitted] - Network accessline 2113
When utilizing [DynamoDB](https://aws.amazon.com/dynamodb) to store job batch information, the typical pruning commands used to prune batches stored in a relational database will not work. Instead, you may utilize [DynamoDB's native TTL fun - Access to secretsline 2121
[Credential-related source omitted] - Network accessline 2273
Daemon queue workers do not "reboot" the framework before processing each job. Therefore, you should release any heavy resources after each job completes. For example, if you are doing image manipulation with the [GD library](https://www.ph - Network accessline 2312
> [!WARNING] > The only queue connection which does not contain a `retry_after` value is Amazon SQS. SQS will retry the job based on the [Default Visibility Timeout](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide - Network accessline 2313
> The only queue connection which does not contain a `retry_after` value is Amazon SQS. SQS will retry the job based on the [Default Visibility Timeout](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html - Dangerous shell operationline 2400
sudo apt-get install supervisor - Network accessline 2403
> [!NOTE] > If configuring and managing Supervisor yourself sounds overwhelming, consider using [Laravel Cloud](https://cloud.laravel.com), which provides a fully-managed platform for running Laravel queue workers. - Network accessline 2404
> If configuring and managing Supervisor yourself sounds overwhelming, consider using [Laravel Cloud](https://cloud.laravel.com), which provides a fully-managed platform for running Laravel queue workers. - Dangerous shell operationline 2437
sudo supervisorctl reread - Dangerous shell operationline 2439
sudo supervisorctl update - Dangerous shell operationline 2441
sudo supervisorctl start "laravel-worker:*" - Network accessline 2444
For more information on Supervisor, consult the [Supervisor documentation](http://supervisord.org/index.html). - Network accessline 2656
Laravel also provides support for storing your failed job records in [DynamoDB](https://aws.amazon.com/dynamodb) instead of a relational database table. However, you must manually create a DynamoDB table to store all of the failed job recor - Access to secretsline 2672
[Credential-related source omitted]
skills/laravel12/references/readme.md
- Network accessline 3
You can find the online version of the Laravel documentation at [https://laravel.com/docs](https://laravel.com/docs)
skills/laravel12/references/redis.md
- Network accessline 16
[Redis](https://redis.io) is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain [strings](https://redis.io/docs/latest/develop/data-types/strings/), [hashes](https://redis.io/ - Network accessline 18
Before using Redis with Laravel, we encourage you to install and use the [PhpRedis](https://github.com/phpredis/phpredis) PHP extension via PECL. The extension is more complex to install compared to "user-land" PHP packages but may yield be - Network accessline 167
In addition to the default configuration options, Predis supports additional [connection parameters](https://github.com/nrk/predis/wiki/Connection-Parameters) that may be defined for each of your Redis servers. To utilize these additional c - Network accessline 291
You may interact with Redis by calling various methods on the `Redis` [facade](/docs/{{version}}/facades). The `Redis` facade supports dynamic methods, meaning you may call any [Redis command](https://redis.io/commands) on the facade and th - Network accessline 366
The `eval` method provides another method of executing multiple Redis commands in a single, atomic operation. However, the `eval` method has the benefit of being able to interact with and inspect Redis key values during that operation. Redi - Dangerous shell operationline 373
$value = Redis::eval(<<<'LUA' - Network accessline 384
> [!WARNING] > Please consult the [Redis documentation](https://redis.io/commands/eval) for more information on Redis scripting. - Network accessline 385
> Please consult the [Redis documentation](https://redis.io/commands/eval) for more information on Redis scripting.
skills/laravel12/references/releases.md
- Network accessline 10
Laravel and its other first-party packages follow [Semantic Versioning](https://semver.org). Major framework releases are released every year (~Q1), while minor and patch releases may be released as often as every week. Minor and patch rele - Network accessline 17
[Named arguments](https://www.php.net/manual/en/functions.arguments.php#functions.named-arguments) are not covered by Laravel's backwards compatibility guidelines. We may choose to rename function arguments when necessary in order to improv - Network accessline 51
Laravel 12 continues the improvements made in Laravel 11.x by updating upstream dependencies and introducing new starter kits for React, Svelte, Vue, and Livewire, including the option of using [WorkOS AuthKit](https://authkit.com) for user - Network accessline 63
Laravel 12 introduces new [application starter kits](/docs/{{version}}/starter-kits) for React, Svelte, Vue, and Livewire. The React, Svelte, and Vue starter kits utilize Inertia 2, TypeScript, [shadcn/ui](https://ui.shadcn.com), and Tailwi - Network accessline 65
The React, Svelte, Vue, and Livewire starter kits all utilize Laravel's built-in authentication system to offer login, registration, password reset, email verification, and more. In addition, we are introducing a [WorkOS AuthKit-powered](ht
skills/laravel12/references/requests.md
- Network accessline 114
The `path` method returns the request's path information. So, if the incoming request is targeted at `http://example.com/foo/bar`, the `path` method will return `foo/bar`: - Network accessline 262
The [PSR-7 standard](https://www.php-fig.org/psr/psr-7/) specifies interfaces for HTTP messages, including requests and responses. If you would like to obtain an instance of a PSR-7 request instead of a Laravel request, you will first need - Network accessline 426
Input values that correspond to [PHP enums](https://www.php.net/manual/en/language.types.enumerations.php) may also be retrieved from the request. If the request does not contain an input value with the given name or the enum does not have - Network accessline 747
There are a variety of other methods available on `UploadedFile` instances. Check out the [API documentation for the class](https://github.com/symfony/symfony/blob/6.0/src/Symfony/Component/HttpFoundation/File/UploadedFile.php) for more inf - Network accessline 804
> [!NOTE] > If you are using AWS Elastic Load Balancing, the `headers` value should be `Request::HEADER_X_FORWARDED_AWS_ELB`. If your load balancer uses the standard `Forwarded` header from [RFC 7239](https://www.rfc-editor.org/rfc/rfc7239# - Network accessline 805
> If you are using AWS Elastic Load Balancing, the `headers` value should be `Request::HEADER_X_FORWARDED_AWS_ELB`. If your load balancer uses the standard `Forwarded` header from [RFC 7239](https://www.rfc-editor.org/rfc/rfc7239#section-4)
skills/laravel12/references/responses.md
- Network accessline 135
The `cookie` method also accepts a few more arguments which are used less frequently. Generally, these arguments have the same purpose and meaning as the arguments that would be given to PHP's native [setcookie](https://secure.php.net/manua - Network accessline 279
return redirect()->away('https://www.google.com'); - Network accessline 395
For convenience, if the closure you provide to the `stream` method returns a [Generator](https://www.php.net/manual/en/language.generators.overview.php), Laravel will automatically flush the output buffer between strings returned by the gen - Network accessline 519
`onResponse` is triggered after a successful initial response from the stream and the raw [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) is passed to the callback. `onData` is called as each chunk is received - the cu - Network accessline 736
The `eventStream` method may be used to return a server-sent events (SSE) streamed response using the `text/event-stream` content type. The `eventStream` method accepts a closure which should [yield](https://www.php.net/manual/en/language.g - Network accessline 844
Event streams may also be manually consumed via an [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) object by your application's frontend. The `eventStream` method will automatically send a `</stream>` update to t
skills/laravel12/references/reverb.md
- Network accessline 26
[Laravel Reverb](https://github.com/laravel/reverb) brings blazing-fast and scalable real-time WebSocket communication directly to your Laravel application, and provides seamless integration with Laravel's existing suite of [event broadcast - Network accessline 93
However, it can sometimes be useful, such as during local development, for the Reverb server to handle secure connections directly. If you are using [Laravel Herd's](https://herd.laravel.com) secure site feature or you are using [Laravel Va - Network accessline 101
You may also manually choose a certificate by defining `tls` options in your application's `config/reverb.php` configuration file. Within the array of `tls` options, you may provide any of the options supported by [PHP's SSL context options - Network accessline 201
> [!NOTE] > [Laravel Cloud](https://cloud.laravel.com) offers fully managed WebSocket infrastructure powered by Laravel Reverb clusters, allowing you to scale and ship Reverb enabled applications without managing infrastructure. - Network accessline 202
> [Laravel Cloud](https://cloud.laravel.com) offers fully managed WebSocket infrastructure powered by Laravel Reverb clusters, allowing you to scale and ship Reverb enabled applications without managing infrastructure. - Network accessline 256
proxy_pass http://0.0.0.0:8080; - Network accessline 263
> [!WARNING] > Reverb listens for WebSocket connections at `/app` and handles API requests at `/apps`. You should ensure the web server handling Reverb requests can serve both of these URIs. If you are using [Laravel Forge](https://forge.la - Network accessline 264
> Reverb listens for WebSocket connections at `/app` and handles API requests at `/apps`. You should ensure the web server handling Reverb requests can serve both of these URIs. If you are using [Laravel Forge](https://forge.laravel.com) to
skills/laravel12/references/routing.md
- Network accessline 51
For most applications, you will begin by defining routes in your `routes/web.php` file. The routes defined in `routes/web.php` may be accessed by entering the defined route's URL in your browser. For example, you may access the following ro - Network accessline 467
// http://example.com/user/1/profile?photos=yes - Network accessline 717
PHP 8.1 introduced support for [Enums](https://www.php.net/manual/en/language.enumerations.backed.php). To complement this feature, Laravel allows you to type-hint a [string-backed Enum](https://www.php.net/manual/en/language.enumerations.b - Network accessline 1036
You may refer to the API documentation for both the [underlying class of the Route facade](https://api.laravel.com/docs/{{version}}/Illuminate/Routing/Router.html) and [Route instance](https://api.laravel.com/docs/{{version}}/Illuminate/Rou - Network accessline 1051
> [!NOTE] > For more information on CORS and CORS headers, please consult the [MDN web documentation on CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#The_HTTP_response_headers). - Network accessline 1052
> For more information on CORS and CORS headers, please consult the [MDN web documentation on CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#The_HTTP_response_headers).
skills/laravel12/references/sail.md
- Network accessline 37
[Laravel Sail](https://github.com/laravel/sail) is a light-weight command-line interface for interacting with Laravel's default Docker development environment. Sail provides a great starting point for building a Laravel application using PH - Network accessline 41
Laravel Sail is supported on macOS, Linux, and Windows (via [WSL2](https://docs.microsoft.com/en-us/windows/wsl/about)). - Network accessline 84
If you would like to develop within a [Devcontainer](https://code.visualstudio.com/docs/remote/containers), you may provide the `--devcontainer` option to the `sail:install` command. The `--devcontainer` option will instruct the `sail:insta - Network accessline 143
Once the application's containers have been started, you may access the project in your web browser at: http://localhost. - Network accessline 218
As you may have noticed, your application's `compose.yaml` file contains an entry for a MySQL container. This container uses a [Docker volume](https://docs.docker.com/storage/volumes/) so that the data stored in your database is persisted e - Network accessline 224
To connect to your application's MySQL database from your local machine, you may use a graphical database management application such as [TablePlus](https://tableplus.com). By default, the MySQL database is accessible at `localhost` port 33 - Network accessline 229
If you chose to install the [MongoDB](https://www.mongodb.com/) service when installing Sail, your application's `compose.yaml` file contains an entry for a [MongoDB Atlas Local](https://www.mongodb.com/docs/atlas/cli/current/atlas-cli-loca - Network accessline 239
For seamless integration of MongoDB with your application, you can install the [official package maintained by MongoDB](https://www.mongodb.com/docs/drivers/php/laravel-mongodb/). - Network accessline 241
To connect to your application's MongoDB database from your local machine, you may use a graphical interface such as [Compass](https://www.mongodb.com/products/tools/compass). By default, the MongoDB database is accessible at `localhost` po - Network accessline 246
Your application's `compose.yaml` file also contains an entry for a [Redis](https://redis.io) container. This container uses a [Docker volume](https://docs.docker.com/storage/volumes/) so that the data stored in your Redis instance is persi - Network accessline 248
To connect to your application's Redis database from your local machine, you may use a graphical database management application such as [TablePlus](https://tableplus.com). By default, the Redis database is accessible at `localhost` port 63 - Network accessline 253
If you choose to install Valkey service when installing Sail, your application's `compose.yaml` file will contain an entry for [Valkey](https://valkey.io/). This container uses a [Docker volume](https://docs.docker.com/storage/volumes/) so - Network accessline 255
To connect to your application's Valkey database from your local machine, you may use a graphical database management application such as [TablePlus](https://tableplus.com). By default, the Valkey database is accessible at `localhost` port - Network accessline 260
If you chose to install the [Meilisearch](https://www.meilisearch.com) service when installing Sail, your application's `compose.yaml` file will contain an entry for this powerful search engine that is integrated with [Laravel Scout](/docs/ - Network accessline 262
From your local machine, you may access Meilisearch's web based administration panel by navigating to `http://localhost:7700` in your web browser. - Network accessline 267
If you chose to install the [Typesense](https://typesense.org) service when installing Sail, your application's `compose.yaml` file will contain an entry for this lightning fast, open-source search engine that is natively integrated with [L - Access to secretsline 273
[Credential-related source omitted] - Network accessline 276
From your local machine, you may access Typesense's API via `http://localhost:8108`. - Network accessline 281
If you plan to use Amazon S3 to store files while running your application in its production environment, you may wish to install the [RustFS](https://rustfs.com) service when installing Sail. RustFS provides an S3 compatible API that you m - Network accessline 289
AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET=local AWS_ENDPOINT=http://rustfs:9000 - Network accessline 290
AWS_BUCKET=local AWS_ENDPOINT=http://rustfs:9000 AWS_USE_PATH_STYLE_ENDPOINT=true - Network accessline 291
AWS_ENDPOINT=http://rustfs:9000 - Network accessline 368
Laravel Sail's default `compose.yaml` file contains a service entry for [Mailpit](https://github.com/axllent/mailpit). Mailpit intercepts emails sent by your application during local development and provides a convenient web interface so th - Network accessline 376
When Sail is running, you may access the Mailpit web interface at: http://localhost:8025 - Network accessline 389
To start a new [Laravel Tinker](https://github.com/laravel/tinker) session, you may execute the `tinker` command: - Network accessline 477
> [!NOTE] > The `share` command is powered by [Expose](https://github.com/beyondcode/expose), an open source tunneling service by [BeyondCode](https://beyondco.de). - Network accessline 478
> The `share` command is powered by [Expose](https://github.com/beyondcode/expose), an open source tunneling service by [BeyondCode](https://beyondco.de). - Network accessline 483
Laravel Sail's Docker configuration includes support for [Xdebug](https://xdebug.org/), a popular and powerful debugger for PHP. To enable Xdebug, ensure you have [published your Sail configuration](#sail-customization). Then, add the follo - Access to secretsline 522
[Credential-related source omitted] - Network accessline 544
To debug your application while interacting with the application via a web browser, follow the [instructions provided by Xdebug](https://xdebug.org/docs/step_debug#web-application) for initiating an Xdebug session from the web browser. - Network accessline 546
If you're using PhpStorm, please review JetBrains' documentation regarding [zero-configuration debugging](https://www.jetbrains.com/help/phpstorm/zero-configuration-debugging.html).
skills/laravel12/references/sanctum.md
- Network accessline 28
[Laravel Sanctum](https://github.com/laravel/sanctum) provides a featherweight authentication system for SPAs (single page applications), mobile applications, and simple, token based APIs. Sanctum allows each user of your application to gen - Access to secretsline 390
[Credential-related source omitted]
skills/laravel12/references/scheduling.md
- Network accessline 45
In addition to scheduling using closures, you may also schedule [invokable objects](https://secure.php.net/manual/en/language.oop5.magic.php#object.invoke). Invokable objects are simple PHP classes that contain an `__invoke` method: - Network accessline 378
Schedule::job(new CheckUptime('https://laravel.com')) - Network accessline 383
Schedule::job(new CheckUptime('https://vapor.laravel.com')) - Network accessline 447
So, when using Laravel's scheduler, we only need to add a single cron configuration entry to our server that runs the `schedule:run` command every minute. If you do not know how to add cron entries to your server, consider using a managed p - Network accessline 588
Using the `pingBefore` and `thenPing` methods, the scheduler can automatically ping a given URL before or after a task is executed. This method is useful for notifying an external service, such as [Envoyer](https://envoyer.io), that your sc
skills/laravel12/references/scout.md
- Network accessline 34
[Laravel Scout](https://github.com/laravel/scout) provides a simple, driver-based solution for adding full-text search to your [Eloquent models](/docs/{{version}}/eloquent). Using model observers, Scout will automatically keep your search i - Network accessline 38
Scout also includes drivers for [Algolia](https://www.algolia.com/), [Meilisearch](https://www.meilisearch.com), and [Typesense](https://typesense.org) when you need features like typo tolerance, faceted filtering, or geo-search at massive - Network accessline 114
[Meilisearch](https://www.meilisearch.com) is a fast, open source search engine. If you aren't sure how to install Meilisearch on your local machine, you may use [Laravel Sail](/docs/{{version}}/sail#meilisearch), Laravel's officially suppo - Network accessline 125
SCOUT_DRIVER=meilisearch MEILISEARCH_HOST=http://127.0.0.1:7700 - Network accessline 126
MEILISEARCH_HOST=http://127.0.0.1:7700 - Network accessline 130
For more information regarding Meilisearch, please consult the [Meilisearch documentation](https://docs.meilisearch.com/learn/getting_started/quick_start.html). - Network accessline 132
In addition, you should ensure that you install a version of `meilisearch/meilisearch-php` that is compatible with your Meilisearch binary version by reviewing [Meilisearch's documentation regarding binary compatibility](https://github.com/ - Network accessline 134
> [!WARNING] > When upgrading Scout on an application that utilizes Meilisearch, you should always [review any additional breaking changes](https://github.com/meilisearch/Meilisearch/releases) to the Meilisearch service itself. - Network accessline 135
> When upgrading Scout on an application that utilizes Meilisearch, you should always [review any additional breaking changes](https://github.com/meilisearch/Meilisearch/releases) to the Meilisearch service itself. - Network accessline 140
[Typesense](https://typesense.org) is a lightning-fast, open source search engine and supports keyword search, semantic search, geo search, and vector search. - Network accessline 142
You can [self-host](https://typesense.org/docs/guide/install-typesense.html#option-2-local-machine-self-hosting) Typesense or use [Typesense Cloud](https://cloud.typesense.org). - Access to secretsline 150
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted] - Network accessline 166
Additional settings and schema definitions for your Typesense collections can be found within your application's `config/scout.php` configuration file. For more information regarding Typesense, please consult the [Typesense documentation](h - Network accessline 381
This approach allows you to deploy these settings through your application's automated deployment pipeline, avoiding manual configuration and ensuring consistency across multiple environments. You may configure filterable attributes, rankin - Access to secretsline 391
[Credential-related source omitted] - Network accessline 436
Meilisearch requires you to pre-define index search settings such as filterable attributes, sortable attributes, and [other supported settings fields](https://docs.meilisearch.com/reference/api/settings.html). - Network accessline 444
'meilisearch' => [ 'host' => env('MEILISEARCH_HOST', 'http://localhost:7700'), - Network accessline 445
'host' => env('MEILISEARCH_HOST', 'http://localhost:7700'), - Access to secretsline 446
[Credential-related source omitted] - Network accessline 514
You should also define your Typesense collection schemas in your application's `config/scout.php` file. A collection schema describes the data types of each field that is searchable via Typesense. For more information on all available schem - Network accessline 538
Typesense allows you to modify your [search parameters](https://typesense.org/docs/latest/api/search.html#search-parameters) dynamically when performing a search operation via the `options` method:
skills/laravel12/references/search.md
- Network accessline 110
> [!NOTE] > Vector search requires a PostgreSQL database with the `pgvector` extension and the [Laravel AI SDK](/docs/{{version}}/ai-sdk). All [Laravel Cloud](https://cloud.laravel.com) Serverless Postgres databases already include `pgvecto - Network accessline 111
> Vector search requires a PostgreSQL database with the `pgvector` extension and the [Laravel AI SDK](/docs/{{version}}/ai-sdk). All [Laravel Cloud](https://cloud.laravel.com) Serverless Postgres databases already include `pgvector`. - Network accessline 277
Scout also supports third-party search engines such as [Algolia](https://www.algolia.com/), [Meilisearch](https://www.meilisearch.com), and [Typesense](https://typesense.org). These dedicated search services offer advanced features like typ
skills/laravel12/references/session.md
- Network accessline 23
Laravel ships with a variety of session backends that are accessed through an expressive, unified API. Support for popular backends such as [Memcached](https://memcached.org), [Redis](https://redis.io), and databases is included. - Network accessline 267
Regenerating the session ID is often done in order to prevent malicious users from exploiting a [session fixation](https://owasp.org/www-community/attacks/Session_fixation) attack on your application.
skills/laravel12/references/socialite.md
- Network accessline 19
In addition to typical, form based authentication, Laravel also provides a simple, convenient way to authenticate with OAuth providers using [Laravel Socialite](https://github.com/laravel/socialite). Socialite currently supports authenticat - Network accessline 21
> [!NOTE] > Adapters for other platforms are available via the community driven [Socialite Providers](https://socialiteproviders.com/) website. - Network accessline 22
> Adapters for other platforms are available via the community driven [Socialite Providers](https://socialiteproviders.com/) website. - Network accessline 36
When upgrading to a new major version of Socialite, it's important that you carefully review [the upgrade guide](https://github.com/laravel/socialite/blob/master/UPGRADE.md). - Network accessline 47
[Credential-related source omitted] - Network accessline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Network accessline 49
'redirect' => 'http://example.com/callback-url', - Network accessline 135
Slack's API provides [different types of access tokens](https://api.slack.com/authentication/token-types), each with their own set of [permission scopes](https://api.slack.com/scopes). Socialite is compatible with both of the following Slac
skills/laravel12/references/starter-kits.md
- Network accessline 28
To give you a head start building your new Laravel application, we are happy to offer [application starter kits](https://laravel.com/starter-kits). These starter kits give you a head start on building your next Laravel application, and incl - Network accessline 55
Once you have started the Laravel development server, your application will be accessible in your web browser at [http://localhost:8000](http://localhost:8000). - Network accessline 63
Our React starter kit provides a robust, modern starting point for building Laravel applications with a React frontend using [Inertia](https://inertiajs.com). - Network accessline 67
The React starter kit utilizes React 19, TypeScript, Tailwind, and the [shadcn/ui](https://ui.shadcn.com) component library. - Network accessline 72
Our Svelte starter kit provides a robust, modern starting point for building Laravel applications with a Svelte frontend using [Inertia](https://inertiajs.com). - Network accessline 76
The Svelte starter kit utilizes Svelte 5, TypeScript, Tailwind, and the [shadcn-svelte](https://www.shadcn-svelte.com/) component library. - Network accessline 81
Our Vue starter kit provides a great starting point for building Laravel applications with a Vue frontend using [Inertia](https://inertiajs.com). - Network accessline 85
The Vue starter kit utilizes the Vue Composition API, TypeScript, Tailwind, and the [shadcn-vue](https://www.shadcn-vue.com/) component library. - Network accessline 90
Our Livewire starter kit provides the perfect starting point for building Laravel applications with a [Laravel Livewire](https://livewire.laravel.com) frontend. - Network accessline 94
The Livewire starter kit utilizes Livewire, Tailwind, and the [Flux UI](https://fluxui.dev) component library. - Network accessline 102
Our React starter kit is built with Inertia 2, React 19, Tailwind 4, and [shadcn/ui](https://ui.shadcn.com). As with all of our starter kits, all of the backend and frontend code exists within your application to allow for full customizatio - Network accessline 116
To publish additional shadcn components, first [find the component you want to publish](https://ui.shadcn.com). Then, publish the component using `npx`: - Network accessline 173
Our Svelte starter kit is built with Inertia 2, Svelte 5, Tailwind, and [shadcn-svelte](https://www.shadcn-svelte.com/). As with all of our starter kits, all of the backend and frontend code exists within your application to allow for full - Network accessline 186
To publish additional shadcn-svelte components, first [find the component you want to publish](https://www.shadcn-svelte.com). Then, publish the component using `npx`: - Network accessline 239
Our Vue starter kit is built with Inertia 2, Vue 3 Composition API, Tailwind, and [shadcn-vue](https://www.shadcn-vue.com/). As with all of our starter kits, all of the backend and frontend code exists within your application to allow for f - Network accessline 253
To publish additional shadcn-vue components, first [find the component you want to publish](https://www.shadcn-vue.com). Then, publish the component using `npx`: - Network accessline 308
Our Livewire starter kit is built with Livewire 4, Tailwind, and [Flux UI](https://fluxui.dev/). As with all of our starter kits, all of the backend and frontend code exists within your application to allow for full customization. - Network accessline 456
By default, the React, Svelte, Vue, and Livewire starter kits all utilize Laravel's built-in authentication system to offer login, registration, password reset, email verification, and more. In addition, we also offer a [WorkOS AuthKit](htt - Network accessline 467
Using WorkOS as your authentication provider [requires a WorkOS account](https://workos.com). WorkOS offers free authentication for applications up to 1 million monthly active users. - Access to secretsline 473
[Credential-related source omitted] - Access to secretsline 477
[Credential-related source omitted] - Network accessline 496
The React, Svelte, and Vue starter kits are compatible with Inertia's [server-side rendering](https://inertiajs.com/server-side-rendering) capabilities. To build an Inertia SSR compatible bundle for your application, run the `build:ssr` com - Network accessline 520
To ensure your starter kit is available to others, you will need to publish it to [Packagist](https://packagist.org). Your starter kit should define its required environment variables in its `.env.example` file, and any necessary post-insta
skills/laravel12/references/strings.md
- Network accessline 335
The `Str::apa` method converts the given string to title case following the [APA guidelines](https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case): - Network accessline 444
$url = Str::chopStart('https://laravel.com', 'https://'); - Network accessline 454
$url = Str::chopStart('http://laravel.com', ['https://', 'http://']); - Network accessline 749
The `Str::inlineMarkdown` method converts GitHub flavored Markdown into inline HTML using [CommonMark](https://commonmark.thephpleague.com/). However, unlike the `markdown` method, it does not wrap all generated HTML in a block-level elemen - Network accessline 761
By default, Markdown supports raw HTML, which will expose Cross-Site Scripting (XSS) vulnerabilities when used with raw user input. As per the [CommonMark Security documentation](https://commonmark.thephpleague.com/security/), you may use t - Network accessline 847
$isUrl = Str::isUrl('http://example.com'); - Network accessline 859
$isUrl = Str::isUrl('http://example.com', ['http', 'https']); - Network accessline 994
The `Str::markdown` method converts GitHub flavored Markdown into HTML using [CommonMark](https://commonmark.thephpleague.com/): - Network accessline 1012
By default, Markdown supports raw HTML, which will expose Cross-Site Scripting (XSS) vulnerabilities when used with raw user input. As per the [CommonMark Security documentation](https://commonmark.thephpleague.com/security/), you may use t - Network accessline 2020
The `apa` method converts the given string to title case following the [APA guidelines](https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case): - Network accessline 2178
$url = Str::of('https://laravel.com')->chopStart('https://'); - Network accessline 2188
$url = Str::of('http://laravel.com')->chopStart(['https://', 'http://']); - Network accessline 2201
$url = Str::of('https://laravel.com')->chopEnd('.com'); - Network accessline 2203
// 'https://laravel' - Network accessline 2211
$url = Str::of('http://laravel.com')->chopEnd(['.com', '.io']); - Network accessline 2213
// 'http://laravel' - Network accessline 2545
The `hash` method hashes the string using the given [algorithm](https://www.php.net/manual/en/function.hash-algos.php): - Network accessline 2575
The `inlineMarkdown` method converts GitHub flavored Markdown into inline HTML using [CommonMark](https://commonmark.thephpleague.com/). However, unlike the `markdown` method, it does not wrap all generated HTML in a block-level element: - Network accessline 2587
By default, Markdown supports raw HTML, which will expose Cross-Site Scripting (XSS) vulnerabilities when used with raw user input. As per the [CommonMark Security documentation](https://commonmark.thephpleague.com/security/), you may use t - Network accessline 2714
$result = Str::of('http://example.com')->isUrl(); - Network accessline 2726
$result = Str::of('http://example.com')->isUrl(['http', 'https']); - Network accessline 2862
By default, Markdown supports raw HTML, which will expose Cross-Site Scripting (XSS) vulnerabilities when used with raw user input. As per the [CommonMark Security documentation](https://commonmark.thephpleague.com/security/), you may use t - Network accessline 3267
The `scan` method parses input from a string into a collection according to a format supported by the [`sscanf` PHP function](https://www.php.net/manual/en/function.sscanf.php): - Network accessline 3394
$result = Str::of('<a href="https://laravel.com">Taylor <b>Otwell</b></a>')->stripTags(); - Network accessline 3398
$result = Str::of('<a href="https://laravel.com">Taylor <b>Otwell</b></a>')->stripTags('<b>'); - Network accessline 3557
$uri = Str::of('https://example.com')->toUri();
skills/laravel12/references/structure.md
- Network accessline 93
The `tests` directory contains your automated tests. Example [Pest](https://pestphp.com) or [PHPUnit](https://phpunit.de/) unit tests and feature tests are provided out of the box. Each test class should be suffixed with the word `Test`. Yo - Network accessline 98
The `vendor` directory contains your [Composer](https://getcomposer.org) dependencies. - Network accessline 103
The majority of your application is housed in the `app` directory. By default, this directory is namespaced under `App` and is autoloaded by Composer using the [PSR-4 autoloading standard](https://www.php-fig.org/psr/psr-4/). - Network accessline 140
This directory does not exist by default, but will be created for you if you execute the `make:job` Artisan command. The `Jobs` directory houses the [queueable jobs](/docs/{{version}}/queues) for your application. Jobs may be queued by your
skills/laravel12/references/telescope.md
- Network accessline 38
[Laravel Telescope](https://github.com/laravel/telescope) makes a wonderful companion to your local Laravel development environment. Telescope provides insight into the requests coming into your application, exceptions, log entries, databas - Network accessline 40
<img src="https://laravel.com/img/docs/telescope-example.png"> - Network accessline 160
When upgrading to a new major version of Telescope, it's important that you carefully review [the upgrade guide](https://github.com/laravel/telescope/blob/master/UPGRADE.md).
skills/laravel12/references/testing.md
- Network accessline 15
Laravel is built with testing in mind. In fact, support for testing with [Pest](https://pestphp.com) and [PHPUnit](https://phpunit.de) is included out of the box and a `phpunit.xml` file is already set up for your application. The framework - Network accessline 199
> [!WARNING] > This feature requires [Xdebug](https://xdebug.org) or [PCOV](https://pecl.php.net/package/pcov). - Network accessline 200
> This feature requires [Xdebug](https://xdebug.org) or [PCOV](https://pecl.php.net/package/pcov).
skills/laravel12/references/upgrade.md
- Network accessline 44
> [!NOTE] > We attempt to document every possible breaking change. Since some of these breaking changes are in obscure parts of the framework only a portion of these changes may actually affect your application. Want to save time? You can u - Network accessline 45
> We attempt to document every possible breaking change. Since some of these breaking changes are in obscure parts of the framework only a portion of these changes may actually affect your application. Want to save time? You can use [Larave - Network accessline 67
Support for Carbon 2.x has been removed. All Laravel 12 applications now require [Carbon 3.x](https://carbon.nesbot.com/guide/getting-started/migration.html). - Network accessline 72
If you are using the Laravel installer CLI tool to create new Laravel applications, you should update your installer installation to be compatible with Laravel 12.x and the [new Laravel starter kits](https://laravel.com/starter-kits). If yo - Dangerous shell operationline 81
/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)" - Network accessline 81
/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)" - Network accessline 85
# Run as administrator... Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadSt - Network accessline 86
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://php.new/inst - Dangerous shell operationline 90
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)" - Network accessline 90
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)" - Network accessline 93
Or, if you are using [Laravel Herd's](https://herd.laravel.com) bundled copy of the Laravel installer, you should update your Herd installation to the latest release. - Network accessline 305
We also encourage you to view the changes in the `laravel/laravel` [GitHub repository](https://github.com/laravel/laravel). While many of these changes are not required, you may wish to keep these files in sync with your application. Some o
skills/laravel12/references/urls.md
- Network accessline 31
// http://example.com/posts/1 - Network accessline 39
// https://example.com/posts?search=Laravel - Network accessline 43
// http://example.com/posts?sort=latest&search=Laravel - Network accessline 51
// http://example.com/posts?sort=oldest - Network accessline 59
// http://example.com/posts?columns%5B0%5D=title&columns%5B1%5D=body - Network accessline 63
// http://example.com/posts?columns[0]=title&columns[1]=body - Network accessline 134
// http://example.com/post/1 - Network accessline 146
// http://example.com/post/1/comment/3 - Network accessline 154
// http://example.com/post/1?search=rocket - Network accessline 280
// Generate a URI instance from the given string... $uri = Uri::of('https://example.com/path'); - Network accessline 281
$uri = Uri::of('https://example.com/path'); - Network accessline 301
$uri = Uri::of('https://example.com')
skills/laravel12/references/valet.md
- Network accessline 25
> [!NOTE] > Looking for an even easier way to develop Laravel applications on macOS or Windows? Check out [Laravel Herd](https://herd.laravel.com). Herd includes everything you need to get started with Laravel development, including Valet, - Network accessline 26
> Looking for an even easier way to develop Laravel applications on macOS or Windows? Check out [Laravel Herd](https://herd.laravel.com). Herd includes everything you need to get started with Laravel development, including Valet, PHP, and C - Network accessline 28
[Laravel Valet](https://github.com/laravel/valet) is a development environment for macOS minimalists. Laravel Valet configures your Mac to always run [Nginx](https://www.nginx.com/) in the background when your machine starts. Then, using [D - Network accessline 43
- [Laravel](https://laravel.com) - Network accessline 44
- [Bedrock](https://roots.io/bedrock/) - Network accessline 45
- [CakePHP 3](https://cakephp.org) - Network accessline 46
- [ConcreteCMS](https://www.concretecms.com/) - Network accessline 47
- [Contao](https://contao.org/en/) - Network accessline 48
- [Craft](https://craftcms.com) - Network accessline 49
- [Drupal](https://www.drupal.org/) - Network accessline 50
- [ExpressionEngine](https://www.expressionengine.com/) - Network accessline 51
- [Jigsaw](https://jigsaw.tighten.co) - Network accessline 52
- [Joomla](https://www.joomla.org/) - Network accessline 53
- [Katana](https://github.com/themsaid/katana) - Network accessline 54
- [Kirby](https://getkirby.com/) - Network accessline 55
- [Magento](https://magento.com/) - Network accessline 56
- [OctoberCMS](https://octobercms.com/) - Network accessline 57
- [Sculpin](https://sculpin.io/) - Network accessline 58
- [Slim](https://www.slimframework.com) - Network accessline 59
- [Statamic](https://statamic.com) - Network accessline 60
- Static HTML - [Symfony](https://symfony.com) - [WordPress](https://wordpress.org) - Network accessline 61
- [Symfony](https://symfony.com) - Network accessline 62
- [WordPress](https://wordpress.org) - Network accessline 63
- [Zend](https://framework.zend.com) - Network accessline 72
> [!WARNING] > Valet requires macOS and [Homebrew](https://brew.sh/). Before installation, you should make sure that no other programs such as Apache or Nginx are binding to your local machine's port 80. - Network accessline 73
> Valet requires macOS and [Homebrew](https://brew.sh/). Before installation, you should make sure that no other programs such as Apache or Nginx are binding to your local machine's port 80. - Network accessline 87
After installing PHP, you are ready to install the [Composer package manager](https://getcomposer.org). In addition, you should make sure the `$HOME/.composer/vendor/bin` directory is in your system's "PATH". After Composer has been install - Network accessline 131
If your application needs a database, check out [DBngin](https://dbngin.com), which provides a free, all-in-one database management tool that includes MySQL, PostgreSQL, and Redis. After DBngin has been installed, you can connect to your da - Network accessline 150
- If you've added `.valetphprc` files to customize your site's PHP version, rename each `.valetphprc` file to `.valetrc`. Then, prepend `php=` to the existing content of the `.valetrc` file. - Update any custom drivers to match the namespac - Network accessline 151
- Update any custom drivers to match the namespace, extension, type-hints, and return type-hints of the new driver system. You may consult Valet's [SampleValetDriver](https://github.com/laravel/valet/blob/d7787c025e60abc24a5195dc7d4c5c6f2d9 - Network accessline 172
That's all there is to it. Now, any application you create within your "parked" directory will automatically be served using the `http://<directory-name>.test` convention. So, if your parked directory contains a directory named "laravel", t - Network accessline 185
Once an application has been linked to Valet using the `link` command, you may access the application using its directory name. So, the site that was linked in the example above may be accessed at `http://laravel.test`. In addition, Valet a - Network accessline 187
If you would like to serve the application at a different hostname, you may pass the hostname to the `link` command. For example, you may run the following command to make an application available at `http://application.test`: - Network accessline 303
[Credential-related source omitted] - Network accessline 309
> [!NOTE] > You may pass additional ngrok parameters to the share command, such as `valet share --region=eu`. For more information, consult the [ngrok documentation](https://ngrok.com/docs). - Network accessline 310
> You may pass additional ngrok parameters to the share command, such as `valet share --region=eu`. For more information, consult the [ngrok documentation](https://ngrok.com/docs). - Network accessline 315
Sharing your site using Expose requires you to [create an Expose account](https://expose.dev/register) and [authenticate with Expose via your authentication token](https://expose.dev/docs/getting-started/getting-your-token). - Network accessline 317
You may consult the [Expose documentation](https://expose.dev/docs) for information regarding the additional command-line parameters it supports. - Network accessline 356
To solve this, you may use the `proxy` command to generate a proxy. For example, you may proxy all traffic from `http://elasticsearch.test` to `http://127.0.0.1:9200`: - Network accessline 359
# Proxy over HTTP... valet proxy elasticsearch http://127.0.0.1:9200 - Network accessline 360
valet proxy elasticsearch http://127.0.0.1:9200 - Network accessline 362
# Proxy over TLS + HTTP/2... valet proxy elasticsearch http://127.0.0.1:9200 --secure - Network accessline 363
valet proxy elasticsearch http://127.0.0.1:9200 --secure - Network accessline 558
Since macOS 10.14, [access to some files and directories is restricted by default](https://manuals.info.apple.com/MANUALS/1000/MA1902/en_US/apple-platform-security-guide.pdf). These restrictions include the Desktop, Documents, and Downloads
skills/laravel12/references/validation.md
- Network accessline 1227
The field under validation must be entirely Unicode alphabetic characters contained in [\p{L}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AL%3A%5D&g=&i=) and [\p{M}](https://util.unicode.org/UnicodeJsps/list-unicodeset. - Network accessline 1238
The field under validation must be entirely Unicode alpha-numeric characters contained in [\p{L}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AL%3A%5D&g=&i=), [\p{M}](https://util.unicode.org/UnicodeJsps/list-unicodeset. - Network accessline 1249
The field under validation must be entirely Unicode alpha-numeric characters contained in [\p{L}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AL%3A%5D&g=&i=), [\p{M}](https://util.unicode.org/UnicodeJsps/list-unicodeset. - Network accessline 1422
The field under validation must match one of the given _formats_. You should use **either** `date` or `date_format` when validating a field, not both. This validation rule supports all formats supported by PHP's [DateTime](https://www.php.n - Network accessline 1541
The field under validation must be formatted as an email address. This validation rule utilizes the [egulias/email-validator](https://github.com/egulias/EmailValidator) package for validating the email address. By default, the `RFCValidatio - Network accessline 1551
- `rfc`: `RFCValidation` - Validate the email address according to [supported RFCs](https://github.com/egulias/EmailValidator?tab=readme-ov-file#supported-rfcs). - Network accessline 1552
- `strict`: `NoRFCWarningsValidation` - Validate the email according to [supported RFCs](https://github.com/egulias/EmailValidator?tab=readme-ov-file#supported-rfcs), failing when warnings are found (e.g. trailing periods and multiple conse - Network accessline 1781
The field under validation must contain a valid color value in [hexadecimal](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color) format. - Network accessline 1934
[https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types](https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - Network accessline 2015
The field under validation must be [numeric](https://www.php.net/manual/en/function.is-numeric.php). - Network accessline 2251
The arguments [accepted by the `DateTimeZone::listIdentifiers` method](https://www.php.net/manual/en/datetimezone.listidentifiers.php) may also be provided to this validation rule: - Network accessline 2370
The field under validation must be a valid [Universally Unique Lexicographically Sortable Identifier](https://github.com/ulid/spec) (ULID). - Network accessline 2474
[ 'type' => 'url', 'address' => 'https://example.com', - Network accessline 2475
'type' => 'url', 'address' => 'https://example.com', ], - Network accessline 2476
'address' => 'https://example.com', - Network accessline 2627
[https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types](https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - Network accessline 2727
Internally, the `Password` rule object uses the [k-Anonymity](https://en.wikipedia.org/wiki/K-anonymity) model to determine if a password has been leaked via the [haveibeenpwned.com](https://haveibeenpwned.com) service without sacrificing t
skills/laravel12/references/views.md
- Network accessline 46
Instead of writing their frontend templates in PHP via Blade, many developers have begun to prefer to write their templates using React, Svelte, or Vue. Laravel makes this painless thanks to [Inertia](https://inertiajs.com/), a library that
skills/laravel12/references/vite.md
- Network accessline 38
[Vite](https://vitejs.dev) is a modern frontend build tool that provides an extremely fast development environment and bundles your code for production. When building applications with Laravel, you will typically use Vite to bundle your app - Network accessline 58
You can easily install the latest version of Node and NPM using simple graphical installers from [the official Node website](https://nodejs.org/en/download/). Or, if you are using [Laravel Sail](https://laravel.com/docs/{{version}}/sail), y - Network accessline 125
If you are using [Laravel Herd](https://herd.laravel.com) and have secured the site or you are using [Laravel Valet](/docs/{{version}}/valet) and have run the [secure command](/docs/{{version}}/valet#securing-sites) against your application - Network accessline 164
If you are unable to generate a trusted certificate for your system, you may install and configure the [@vitejs/plugin-basic-ssl plugin](https://github.com/vitejs/vite-plugin-basic-ssl). When using untrusted certificates, you will need to a - Network accessline 184
If your file changes are not being reflected in the browser while the development server is running, you may also need to configure Vite's [server.watch.usePolling option](https://vitejs.dev/config/server-options.html#server-watch). - Network accessline 297
If you would like to build your frontend using the [Vue](https://vuejs.org/) framework, then you will also need to install the `@vitejs/plugin-vue` plugin: - Network accessline 341
If you would like to build your frontend using the [React](https://reactjs.org/) framework, then you will also need to install the `@vitejs/plugin-react` plugin: - Network accessline 379
If you would like to build your frontend using the [Svelte](https://svelte.dev/) framework, then you will also need to install the `@sveltejs/vite-plugin-svelte` plugin: - Network accessline 465
> [!NOTE] > Laravel's [starter kits](/docs/{{version}}/starter-kits) already include the proper Tailwind and Vite configuration. Or, if you would like to use Tailwind and Laravel without using one of our starter kits, check out [Tailwind's - Network accessline 466
> Laravel's [starter kits](/docs/{{version}}/starter-kits) already include the proper Tailwind and Vite configuration. Or, if you would like to use Tailwind and Laravel without using one of our starter kits, check out [Tailwind's installati - Network accessline 527
Watching the `routes/**` directory is useful if you are utilizing [Ziggy](https://github.com/tighten/ziggy) to generate route links within your application's frontend. - Network accessline 545
Under the hood, the Laravel Vite plugin uses the [vite-plugin-full-reload](https://github.com/ElMassimo/vite-plugin-full-reload) package, which offers some advanced configuration options to fine-tune this feature's behavior. If you need thi - Network accessline 632
By default, prefetching will begin when the [page _load_ event](https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event) fires. If you would like to customize when prefetching begins, you may specify an event that Vite will liste - Network accessline 660
ASSET_URL=https://cdn.example.com - Network accessline 666
https://cdn.example.com/build/assets/app.9dce8d17.js - Network accessline 677
VITE_SENTRY_DSN_PUBLIC=http://example.com - Network accessline 771
If you are using [SSR with Inertia](https://inertiajs.com/server-side-rendering), you may instead use the `inertia:start-ssr` Artisan command to start the SSR server: - Network accessline 786
If you wish to include a [nonce attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce) on your script and style tags as part of your [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/ - Network accessline 818
If you need to specify the nonce elsewhere, including the [Ziggy `@route` directive](https://github.com/tighten/ziggy#using-routes-with-a-content-security-policy) included with Laravel's [starter kits](/docs/{{version}}/starter-kits), you m - Network accessline 833
If your Vite manifest includes `integrity` hashes for your assets, Laravel will automatically add the `integrity` attribute on any script and style tags it generates in order to enforce [Subresource Integrity](https://developer.mozilla.org/ - Network accessline 873
If you need to include additional attributes on your script and style tags, such as the [data-turbo-track](https://turbo.hotwired.dev/handbook/drive#reloading-when-assets-change) attribute, you may specify them via the `useScriptTagAttribut - Network accessline 920
->withEntryPoints(['resources/js/app.js']) // Specify the entry points... ->createAssetPathsUsing(function (string $path, ?bool $secure) { // Customize the backend path generation for built assets... return "http - Network accessline 921
->createAssetPathsUsing(function (string $path, ?bool $secure) { // Customize the backend path generation for built assets... return "https://cdn.example.com/{$path}"; }) - Network accessline 922
return "https://cdn.example.com/{$path}"; - Network accessline 960
The easiest way to allow a custom origin for your project is to ensure that your application's `APP_URL` environment variable matches the origin you are visiting in your browser. For example, if you visiting `https://my-app.laravel`, you sh - Network accessline 963
APP_URL=https://my-app.laravel - Network accessline 966
If you need more fine-grained control over the origins, such as supporting multiple origins, you should utilize [Vite's comprehensive and flexible built-in CORS server configuration](https://vite.dev/config/server-options.html#server-cors). - Network accessline 980
cors: { // [tl! add] origin: [ // [tl! add] 'https://backend.laravel', // [tl! add] - Network accessline 981
origin: [ // [tl! add] 'https://backend.laravel', // [tl! add] 'http://admin.laravel:8566', // [tl! add] - Network accessline 982
'https://backend.laravel', // [tl! add] - Network accessline 983
'http://admin.laravel:8566', // [tl! add] - Network accessline 1048
- <img src="/@imagetools/f0b2f404b13f052c604e632f2fb60381bf61a520"><!-- [tl! remove] --> + <img src="http://[::1]:5173/@imagetools/f0b2f404b13f052c604e632f2fb60381bf61a520"><!-- [tl! add] --> - Network accessline 1049
+ <img src="http://[::1]:5173/@imagetools/f0b2f404b13f052c604e632f2fb60381bf61a520"><!-- [tl! add] -->
skills/webman/references/en/README.md
- Network accessline 31
GitHub: https://github.com/walkor/webman **Don't hesitate to give it a star!** - Network accessline 33
Gitee: https://gitee.com/walkor/webman **Don't hesitate to give it a star!** - Network accessline 37
[](https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf) - Network accessline 41
[](https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf) - Network accessline 45
The above data is from [techempower.com](https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf).
skills/webman/references/en/aop.md
skills/webman/references/en/app/admin.md
- Network accessline 3
[webman-admin](https://www.workerman.net/plugin/82) is the official management backend developed by webman. It supports permission settings, menu generation (one-click CRUD), and comes with a user table to facilitate sharing user data acros - Network accessline 11
## Integration documentation https://www.workerman.net/doc/webman-admin/development/link.html - Network accessline 12
https://www.workerman.net/doc/webman-admin/development/link.html
skills/webman/references/en/app/app.md
- Network accessline 12
## Earning Revenue webman provides an official [Application Marketplace](https://www.workerman.net/apps) where developers can submit their developed applications and earn revenue from them. - Network accessline 13
webman provides an official [Application Marketplace](https://www.workerman.net/apps) where developers can submit their developed applications and earn revenue from them.
skills/webman/references/en/app/controller.md
- Network accessline 27
When accessing `http://127.0.0.1:8787/app/foo/foo`, the page returns `hello index`. - Network accessline 29
When accessing `http://127.0.0.1:8787/app/foo/foo/hello`, the page returns `hello webman`. - Network accessline 35
For example, the URL path for `plugin\foo\app\controller\UserController` is `http://127.0.0.1:8787/app/foo/user`.
skills/webman/references/en/app/create.md
- Network accessline 5
Each plugin has a unique identifier, and developers need to come up with an identifier before development and check that the identifier is not already taken. You can check the availability of an identifier [here](https://www.workerman.net/a - Network accessline 17
Visit `http://127.0.0.1:8787/app/foo`. If there is a returned content, it means the creation was successful.
skills/webman/references/en/app/database.md
- Network accessline 3
Since most plugins install [webman-admin](https://www.workerman.net/plugin/82), it is recommended to reuse the `webman-admin` database configuration directly.
skills/webman/references/en/app/install.md
- Network accessline 5
## Install from plugin market Go to the [official webman-admin management panel](https://www.workerman.net/plugin/82), open the application plugin page and click the install button to install the corresponding application plugin. - Network accessline 6
Go to the [official webman-admin management panel](https://www.workerman.net/plugin/82), open the application plugin page and click the install button to install the corresponding application plugin. - Network accessline 18
## Uninstall from plugin market Go to the [official webman-admin management panel](https://www.workerman.net/plugin/82), open the application plugin page and click the uninstall button to uninstall the corresponding application plugin. - Network accessline 19
Go to the [official webman-admin management panel](https://www.workerman.net/plugin/82), open the application plugin page and click the uninstall button to uninstall the corresponding application plugin.
skills/webman/references/en/app/market.md
- Network accessline 3
[Click here to enter the application marketplace](https://www.workerman.net/apps)
skills/webman/references/en/app/pack.md
- Network accessline 7
* If your project includes database table creation and similar operations, configure `plugin/foo/install.sql` accordingly. See [Automatic Database Import](database.md#automatic-database-import) * If your project has its own separate databas - Network accessline 8
* If your project has its own separate database and Redis configuration, remove these configurations first. They should be prompted through an installation wizard when the application is first accessed (you need to implement this yourself), - Network accessline 9
* If your project includes webman admin backend menus, configure `plugin/foo/config/menu.php` so that these menus are automatically set when the plugin is installed. See [webman-admin import menus](https://www.workerman.net/doc/webman-admin
skills/webman/references/en/app/publish.md
skills/webman/references/en/app/route.md
- Network accessline 4
## Default Route Application plugin URL paths all start with `/app`. For example, the URL for `plugin\foo\app\controller\UserController` is `http://127.0.0.1:8787/app/foo/user`. - Network accessline 5
Application plugin URL paths all start with `/app`. For example, the URL for `plugin\foo\app\controller\UserController` is `http://127.0.0.1:8787/app/foo/user`.
skills/webman/references/en/app/standard.md
- Network accessline 15
Since the identifier is unique throughout the network, developers need to check if the identifier is available before development. The check address is [Application Identifier Check](https://www.workerman.net/app/check).
skills/webman/references/en/app/static.md
- Network accessline 1
# Static Files Static files are placed under `plugin/{plugin}/public`. For example, accessing `http://127.0.0.1:8787/app/foo/avatar.png` actually retrieves the file `plugin/foo/public/avatar.png`. - Network accessline 3
For example, accessing `http://127.0.0.1:8787/app/foo/avatar.png` actually retrieves the file `plugin/foo/public/avatar.png`.
skills/webman/references/en/casbin.md
- Network accessline 5
It is based on [PHP-Casbin](https://github.com/php-casbin/php-casbin), a powerful and efficient open-source access control framework that supports access control models such as `ACL`, `RBAC`, `ABAC`, etc. - Network accessline 9
https://github.com/Tinywan/webman-permission - Network accessline 16
> This extension requires PHP 7.1+ and [ThinkORM](https://www.kancloud.cn/manual/think-orm/1257998). Official documentation: https://www.workerman.net/doc/webman#/db/others - Network accessline 175
[Casbin](https://github.com/php-casbin/php-casbin), you can view the complete documentation on its [official website](https://casbin.org/).
skills/webman/references/en/components/captcha.md
skills/webman/references/en/components/casbin.md
- Network accessline 9
https://github.com/teamones-open/casbin - Network accessline 21
https://casbin.org/docs/zh-CN/overview - Network accessline 50
* * More information on writing migrations is available here: * http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class - Network accessline 51
* More information on writing migrations is available here: * http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class * - Network accessline 52
* http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class - Network accessline 93
For permission rule model configuration syntax, see: https://casbin.org/docs/zh-CN/syntax-for-models - Network accessline 170
- Management API: https://casbin.org/docs/zh-CN/management-api - Network accessline 171
- RBAC API: https://casbin.org/docs/zh-CN/rbac-api
skills/webman/references/en/components/crontab.md
- Network accessline 22
https://github.com/walkor/crontab
skills/webman/references/en/components/env.md
skills/webman/references/en/components/event.md
- Network accessline 130
## Notes Event handling is not asynchronous. Events are not suitable for slow operations; slow business logic should be handled with message queues, such as [webman/redis-queue](https://www.workerman.net/plugin/12). - Network accessline 131
Event handling is not asynchronous. Events are not suitable for slow operations; slow business logic should be handled with message queues, such as [webman/redis-queue](https://www.workerman.net/plugin/12).
skills/webman/references/en/components/excel.md
skills/webman/references/en/components/generate_error_code.md
- Network accessline 11
https://github.com/teamones-open/response-code-msg
skills/webman/references/en/components/image.md
skills/webman/references/en/components/paginator.md
skills/webman/references/en/components/pay.md
- Network accessline 6
https://github.com/yansongda/pay - Network accessline 27
protected $config = [ 'app_id' => '2016082000295641', 'notify_url' => 'http://yansongda.cn/notify.php', - Network accessline 28
'app_id' => '2016082000295641', 'notify_url' => 'http://yansongda.cn/notify.php', 'return_url' => 'http://yansongda.cn/return.php', - Network accessline 29
'notify_url' => 'http://yansongda.cn/notify.php', - Network accessline 30
'return_url' => 'http://yansongda.cn/return.php', - Possible obfuscationline 31
'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWJKrQ6SWvS6niI+4vEVZiYfjkCfLQfoFI2nCp9ZLDS42QtiL4Ccyx8scgc3nhVwmVRte8f57TFvGhvJD0upT4O5O/lRxmTjechXAorirVdAODpOu0mFfQV9y/T9o9hHnU+VmO5spoVb3umqpq6D/Pt8p25Yk852/w01VTIczrXC4Ql - Possible obfuscationline 33
'private_key' => 'MIIEpAIBAAKCAQEAs6+F2leOgOrvj9jTeDhb5q46GewOjqLBlGSs/bVL4Z3fMr3p+Q1Tux/6uogeVi/eHd84xvQdfpZ87A1SfoWnEGH5z15yorccxSOwWUI+q8gz51IWqjgZxhWKe31BxNZ+prnQpyeMBtE25fXp5nQZ/pftgePyUUvUZRcAUisswntobDQKbwx28VCXw5XB2A+lvYEvxmMv/QexYj - Network accessline 44
'timeout' => 5.0, 'connect_timeout' => 5.0, // See [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) for more options - Network accessline 45
'connect_timeout' => 5.0, // See [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) for more options ], - Network accessline 46
// See [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) for more options - Network accessline 113
'mch_id' => '14577xxxx', 'key' => 'mF2suE9sU6Mk1Cxxxxxxxxxxx', 'notify_url' => 'http://yanda.net.cn/notify.php', - Network accessline 114
'key' => 'mF2suE9sU6Mk1Cxxxxxxxxxxx', 'notify_url' => 'http://yanda.net.cn/notify.php', 'cert_client' => './cert/apiclient_cert.pem', // optional, required for refunds etc. - Network accessline 115
'notify_url' => 'http://yanda.net.cn/notify.php', - Network accessline 125
'timeout' => 5.0, 'connect_timeout' => 5.0, // See [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) for more options - Network accessline 126
'connect_timeout' => 5.0, // See [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) for more options ], - Network accessline 127
// See [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) for more options - Network accessline 169
Visit https://pay.yanda.net.cn/docs/2.x/overview
skills/webman/references/en/components/payment.md
- Network accessline 5
https://github.com/yansongda/pay - Network accessline 39
'alipay_root_cert_path' => base_path().'/payment/alipayRootCert.crt', // Optional - Synchronous callback address 'return_url' => 'https://webman.tinywan.cn/payment/alipay-return', - Network accessline 40
// Optional - Synchronous callback address 'return_url' => 'https://webman.tinywan.cn/payment/alipay-return', // Optional - Asynchronous callback address - Network accessline 41
'return_url' => 'https://webman.tinywan.cn/payment/alipay-return', - Network accessline 42
// Optional - Asynchronous callback address 'notify_url' => 'https://webman.tinywan.cn/payment/alipay-notify', // Optional - Service provider id in service provider mode, used when mode is Pay::MODE_SERVICE - Network accessline 43
'notify_url' => 'https://webman.tinywan.cn/payment/alipay-notify', - Network accessline 59
'mch_public_cert_path' => '', // Required 'notify_url' => 'https://yansongda.cn/wechat/notify', - Network accessline 60
// Required 'notify_url' => 'https://yansongda.cn/wechat/notify', // Optional - app_id of the public account - Network accessline 61
'notify_url' => 'https://yansongda.cn/wechat/notify', - Network accessline 96
'timeout' => 5.0, 'connect_timeout' => 5.0, // For more configuration options, please refer to [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) - Network accessline 97
'connect_timeout' => 5.0, // For more configuration options, please refer to [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) ], - Network accessline 98
// For more configuration options, please refer to [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) - Network accessline 216
https://github.com/Tinywan/webman-admin/blob/main/app/controller/Test.php - Network accessline 220
Visit the official documentation at https://pay.yansongda.cn/docs/v3/
skills/webman/references/en/components/rate-limiter.md
- Network accessline 8
https://github.com/webman-php/limiter
skills/webman/references/en/components/translation.md
- Network accessline 3
Multilingual support uses the [symfony/translation](https://github.com/symfony/translation) component. - Network accessline 74
Visiting `http://127.0.0.1:8787/user/get` will return "你好 世界!" - Network accessline 104
Visiting `http://127.0.0.1:8787/user/get` will return "hello world!" - Network accessline 221
## More Information See [symfony/translation documentation](https://symfony.com/doc/current/translation.html) - Network accessline 222
See [symfony/translation documentation](https://symfony.com/doc/current/translation.html)
skills/webman/references/en/components/unitest.md
- Network accessline 11
Add a new configuration file `phpunit.xml` in the project root directory. You can customize it according to your project needs. See the [phpunit.xml configuration documentation](https://docs.phpunit.de/en/12.4/configuration.html). - Network accessline 14
<?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - Network accessline 15
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
skills/webman/references/en/components/validation.md
- Network accessline 877
The field must be Unicode letters ([\p{L}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AL%3A%5D&g=&i=) and [\p{M}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AM%3A%5D&g=&i=)). - Network accessline 890
The field may only contain Unicode letters and numbers ([\p{L}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AL%3A%5D&g=&i=), [\p{M}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AM%3A%5D&g=&i=), [\p{N} - Network accessline 903
The field may only contain Unicode letters and numbers ([\p{L}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AL%3A%5D&g=&i=), [\p{M}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AM%3A%5D&g=&i=), [\p{N} - Network accessline 1087
The field must match one of the given formats. Use either `date` or `date_format`. This rule supports all PHP [DateTime](https://www.php.net/manual/en/class.datetime.php) formats. - Network accessline 1221
The field must be a valid email address. This rule depends on [egulias/email-validator](https://github.com/egulias/EmailValidator), uses `RFCValidation` by default, and can use other validation methods: - Network accessline 1233
- `rfc`: `RFCValidation` - Validate email per RFC spec ([supported RFCs](https://github.com/egulias/EmailValidator?tab=readme-ov-file#supported-rfcs)). - Network accessline 1497
The field must be a valid [hex color value](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color). - Network accessline 1656
[https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types](https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - Network accessline 1738
The field must be [numeric](https://www.php.net/manual/en/function.is-numeric.php). - Network accessline 2144
The field must be a valid [ULID](https://github.com/ulid/spec). - Network accessline 2170
https://github.com/top-think/think-validate - Network accessline 2228
This project is a localized version of https://github.com/Respect/Validation - Network accessline 2232
https://github.com/walkor/validation - Network accessline 2269
$.ajax({ url : 'http://127.0.0.1:8787', - Network accessline 2270
url : 'http://127.0.0.1:8787', - Network accessline 2461
See https://respect-validation.readthedocs.io/en/2.0/list-of-rules/ for more validation rules. - Network accessline 2465
Visit https://respect-validation.readthedocs.io/en/2.0/
skills/webman/references/en/components/wechat.md
- Network accessline 5
https://github.com/w7corp/easywechat - Network accessline 29
* Whether to use Stable Access Token * Default: false * https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html - Network accessline 30
* Default: false * https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html * true = use, false = do not use - Network accessline 31
* https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html - Access to secretsline 34
[Credential-related source omitted] - Network accessline 47
/** * HTTP request configuration (timeout, etc.). For available parameters, see: * https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php - Network accessline 48
* HTTP request configuration (timeout, etc.). For available parameters, see: * https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php */ - Network accessline 49
* https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php - Network accessline 51
'http' => [ 'timeout' => 5.0, // 'base_uri' => 'https://api.weixin.qq.com/', // Only use when you need to override the default URL (e.g. from abroad). Configure different URIs for different modules. - Network accessline 53
// 'base_uri' => 'https://api.weixin.qq.com/', // Only use when you need to override the default URL (e.g. from abroad). Configure different URIs for different modules. - Network accessline 84
// Authorization event callback URL: http://easywechat.com/OfficialAccount/server - Network accessline 106
Visit https://easywechat.com/6.x/official-account/examples.html
skills/webman/references/en/config.md
- Network accessline 83
return [ 'listen' => 'http://0.0.0.0:8787', // Listen port (removed since 1.6.0, configured in config/process.php) - Network accessline 84
'listen' => 'http://0.0.0.0:8787', // Listen port (removed since 1.6.0, configured in config/process.php) - Network accessline 124
'webman' => [ 'handler' => Http::class, // Process handler class 'listen' => 'http://0.0.0.0:8787', // Listen address - Network accessline 125
'handler' => Http::class, // Process handler class 'listen' => 'http://0.0.0.0:8787', // Listen address 'count' => cpu_count() * 4, // Process count, 4x CPU by default - Network accessline 126
'listen' => 'http://0.0.0.0:8787', // Listen address - Access to secretsline 152
[Credential-related source omitted]
skills/webman/references/en/controller.md
skills/webman/references/en/coroutine/coroutine.md
- Network accessline 20
'webman' => [ 'handler' => Http::class, 'listen' => 'http://0.0.0.0:8787', - Network accessline 21
'handler' => Http::class, 'listen' => 'http://0.0.0.0:8787', 'count' => 1, - Network accessline 22
'listen' => 'http://0.0.0.0:8787', - Network accessline 36
'my-coroutine' => [ 'handler' => Http::class, 'listen' => 'http://0.0.0.0:8686', - Network accessline 37
'handler' => Http::class, 'listen' => 'http://0.0.0.0:8686', 'count' => 1, - Network accessline 38
'listen' => 'http://0.0.0.0:8686', - Network accessline 131
With the process count set to 1, if we issue two requests in succession: http://127.0.0.1:8787/test?name=lilei - Network accessline 132
http://127.0.0.1:8787/test?name=lilei - Network accessline 133
http://127.0.0.1:8787/test?name=hanmeimei - Network accessline 329
See the [Workerman coroutine documentation](https://www.workerman.net/doc/workerman/coroutine/coroutine.html). - Network accessline 339
'webman' => [ 'handler' => Http::class, 'listen' => 'http://0.0.0.0:8787', - Network accessline 340
'handler' => Http::class, 'listen' => 'http://0.0.0.0:8787', 'count' => 1, - Network accessline 341
'listen' => 'http://0.0.0.0:8787', - Network accessline 355
'my-coroutine' => [ 'handler' => Http::class, 'listen' => 'http://0.0.0.0:8686', - Network accessline 356
'handler' => Http::class, 'listen' => 'http://0.0.0.0:8686', 'count' => 1, - Network accessline 357
'listen' => 'http://0.0.0.0:8686', - Network accessline 399
proxy_http_version 1.1; proxy_set_header Connection ""; proxy_pass http://task; - Network accessline 400
proxy_set_header Connection ""; proxy_pass http://task; } - Network accessline 401
proxy_pass http://task; - Network accessline 409
proxy_set_header Connection ""; if (!-f $request_filename){ proxy_pass http://webman; - Network accessline 410
if (!-f $request_filename){ proxy_pass http://webman; } - Network accessline 411
proxy_pass http://webman;
skills/webman/references/en/coroutine/fiber.md
- Network accessline 50
static $client; $client = $client ?: new Client(); $response = $client->get('http://example.com'); // Asynchronously send a synchronous request - Network accessline 51
$client = $client ?: new Client(); $response = $client->get('http://example.com'); // Asynchronously send a synchronous request return $response->getBody()->getContents(); - Network accessline 52
$response = $client->get('http://example.com'); // Asynchronously send a synchronous request - Network accessline 57
Similarly, the `$client->get('http://example.com')` request is non-blocking, which can be used to asynchronously send HTTP requests in webman and improve application performance. - Network accessline 59
For more information, refer to [workerman/http-client](https://www.workerman.net/doc/workerman/components/workerman-http-client.html) - Network accessline 71
For more information, refer to [workerman event-driven](https://www.workerman.net/doc/workerman/appendices/event.html) - Network accessline 98
Setting the number of processes to 1, when we make two consecutive requests: http://127.0.0.1:8787/test?name=lilei - Network accessline 99
http://127.0.0.1:8787/test?name=lilei http://127.0.0.1:8787/test?name=hanmeimei We expect the results of the two requests to be `lilei` and `hanmeimei`, respectively, but actually both return `hanmeimei`. - Network accessline 100
http://127.0.0.1:8787/test?name=hanmeimei We expect the results of the two requests to be `lilei` and `hanmeimei`, respectively, but actually both return `hanmeimei`. This is because the second request overwrites the static variable `$nam - Network accessline 150
In webman, blocking programming is already fast enough. According to the latest round of benchmarking data from [techempower.com](https://www.techempower.com/benchmarks/#section=data-r21&l=zijnjz-6bj&test=db&f=1ekg-cbcw-2t4w-27wr68-pc0-iv9s - Network accessline 155
# When to Use Coroutines Coroutines can be used when there is slow access in the business logic, such as when the business needs to access a third-party API. In such cases, you can use the [workerman/http-client](https://www.workerman.net/d - Network accessline 156
Coroutines can be used when there is slow access in the business logic, such as when the business needs to access a third-party API. In such cases, you can use the [workerman/http-client](https://www.workerman.net/doc/workerman/components/w
skills/webman/references/en/db/cache.md
- Network accessline 3
[webman/cache](https://github.com/webman-php/cache) is a cache component based on [symfony/cache](https://github.com/symfony/cache), compatible with both coroutine and non-coroutine environments, with connection pool support. - Network accessline 67
> Requires the [APCu extension](https://pecl.php.net/package/APCu) to be installed and enabled. Not recommended for scenarios with frequent cache writes/deletes, as it may cause significant performance degradation. - Network accessline 127
> **Tip** > Cache key names are restricted by [PSR-6](https://www.php-fig.org/psr/psr-6/#definitions) and must not contain any of `{}()/\@:`. As of `symfony/cache` 7.2.4, this check can be bypassed by setting PHP ini option `zend.assertions - Network accessline 128
> Cache key names are restricted by [PSR-6](https://www.php-fig.org/psr/psr-6/#definitions) and must not contain any of `{}()/\@:`. As of `symfony/cache` 7.2.4, this check can be bypassed by setting PHP ini option `zend.assertions=-1`. - Network accessline 132
See [Other Databases](others.md#ThinkCache) for the [ThinkCache](https://github.com/webman-php/think-cache) component.
skills/webman/references/en/db/medoo.md
- Network accessline 3
[webman/medoo](https://github.com/webman-php/medoo) extends [Medoo](https://medoo.in/) with connection pool support and works in both coroutine and non-coroutine environments. Usage is the same as Medoo. - Network accessline 103
See [Medoo official documentation](https://medoo.in/api/select)
skills/webman/references/en/db/migration.md
skills/webman/references/en/db/model.md
- Network accessline 3
The webman model is based on [Eloquent ORM](https://laravel.com/docs/7.x/eloquent). Each database table has a corresponding "model" to interact with that table. You can use the model to query data from a table and insert new records into th - Network accessline 214
The `cursor` method returns an instance of `Illuminate\Support\LazyCollection`. [Lazy collections](https://laravel.com/docs/7.x/collections#lazy-collections) allow you to use most of the collection methods available in Laravel, loading only - Network accessline 549
## Model Observers Please refer to [Model Events and Observer in Laravel](https://learnku.com/articles/6657/model-events-and-observer-in-laravel) - Network accessline 550
Please refer to [Model Events and Observer in Laravel](https://learnku.com/articles/6657/model-events-and-observer-in-laravel)
skills/webman/references/en/db/mongo.md
- Network accessline 3
webman uses [mongodb/laravel-mongodb](https://github.com/mongodb/laravel-mongodb) as the default MongoDB component. It is extracted from the Laravel project and works the same way as Laravel. - Network accessline 36
'options' => [ // here you can pass more settings to the Mongo Driver Manager // see https://www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete parameters th - Network accessline 38
// see https://www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete parameters that you can use - Network accessline 94
https://github.com/mongodb/laravel-mongodb
skills/webman/references/en/db/others.md
- Network accessline 1
# Using Other Databases In addition to [illuminate/database](https://github.com/illuminate/database), you can use other database components in webman. - Network accessline 2
In addition to [illuminate/database](https://github.com/illuminate/database), you can use other database components in webman.
skills/webman/references/en/db/redis.md
- Network accessline 3
[webman/redis](https://github.com/webman-php/redis) extends [illuminate/redis](https://github.com/illuminate/redis) with connection pooling, supporting both coroutine and non-coroutine environments. Its usage is the same as Laravel.
skills/webman/references/en/db/relationships.md
- Network accessline 3
Please refer to https://learnku.com/docs/laravel/8.x/eloquent-relationships/9407 for more details.
skills/webman/references/en/db/thinkorm.md
- Network accessline 3
[webman/think-orm](https://github.com/webman-php/think-orm) is a database component based on [top-think/think-orm](https://github.com/top-think/think-orm). It supports connection pooling and works in both coroutine and non-coroutine environ - Network accessline 17
https://www.kancloud.cn/manual/think-orm
skills/webman/references/en/db/tutorial.md
- Network accessline 3
[webman/database](https://github.com/webman-php/database) is built on [illuminate/database](https://github.com/illuminate/database) and adds connection pooling support for both coroutine and non-coroutine environments. The API is the same a
skills/webman/references/en/di.md
- Network accessline 3
In webman, dependency auto-injection is an optional feature and is disabled by default. If you need dependency auto-injection, it is recommended to use [php-di](https://php-di.org/doc/getting-started.html). The following describes how to us - Network accessline 391
Please refer to the [php-di documentation](https://php-di.org/doc/getting-started.html).
skills/webman/references/en/event.md
- Network accessline 3
[]() - Network accessline 4
[]() - Network accessline 5
[]() - Network accessline 6
[]() - Network accessline 7
[]() - Network accessline 13
[https://github.com/Tinywan/webman-permission](https://github.com/Tinywan/webman-permission) - Network accessline 17
- [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher)
skills/webman/references/en/help.md
- Network accessline 5
https://www.workerman.net/questions
skills/webman/references/en/install.md
- Network accessline 3
* PHP >= 8.1 * [Composer](https://getcomposer.org/) >= 2.0 - Network accessline 4
* [Composer](https://getcomposer.org/) >= 2.0 - Dangerous shell operationline 9
curl -sO https://www.workerman.net/install-php-and-composer && sudo bash install-php-and-composer - Network accessline 9
curl -sO https://www.workerman.net/install-php-and-composer && sudo bash install-php-and-composer - Network accessline 14
You can also manually download the [static PHP build](https://www.workerman.net/download) provided by webman and extract it to use. - Network accessline 65
Open `http://ip-address:8787` in your browser.
skills/webman/references/en/log.md
skills/webman/references/en/multiapp.md
- Network accessline 19
When accessing the URL `http://127.0.0.1:8787/shop/{controller}/{method}`, it will access the controller and method under `app/shop/controller`. - Network accessline 21
When accessing the URL `http://127.0.0.1:8787/api/{controller}/{method}`, it will access the controller and method under `app/api/controller`. - Network accessline 23
When accessing the URL `http://127.0.0.1:8787/admin/{controller}/{method}`, it will access the controller and method under `app/admin/controller`. - Network accessline 42
In this case, when accessing the URL `http://127.0.0.1:8787/{controller}/{method}`, it will access the controller and method under `app/controller`. When the path starts with `api` or `admin`, it will access the corresponding directory's co
skills/webman/references/en/others/benchmarks.md
- Network accessline 17
## How to enable HTTP keep-alive during stress testing? If you are using the ab program for stress testing, you need to add the -k parameter, for example `ab -n100000 -c200 -k http://127.0.0.1:8787/`. - Network accessline 18
If you are using the ab program for stress testing, you need to add the -k parameter, for example `ab -n100000 -c200 -k http://127.0.0.1:8787/`. - Network accessline 39
## Why is the performance of webman lower than the Golang Gin framework in my stress test results? According to the [techempower](https://www.techempower.com/benchmarks/#section=data-r21&hw=ph&test=db&l=zijnjz-6bj&a=2&f=1ekg-cbcw-2t4w-27wr6 - Network accessline 40
According to the [techempower](https://www.techempower.com/benchmarks/#section=data-r21&hw=ph&test=db&l=zijnjz-6bj&a=2&f=1ekg-cbcw-2t4w-27wr68-pc0-iv9slc-0-1ekgw-39g-kxs00-o0zk-5jsetl-2x8doc-2) stress test, webman performs about twice as we - Network accessline 94
[**Third-party techempower stress test data**](https://www.techempower.com/benchmarks/#section=data-r21&l=zik073-6bj&test=db) - Network accessline 100
# 100000 requests, 200 concurrency, enable keep-alive ab -n100000 -c200 -k http://127.0.0.1:8787/ - Network accessline 101
ab -n100000 -c200 -k http://127.0.0.1:8787/ - Network accessline 103
# 100000 requests, 200 concurrency, disable keep-alive ab -n100000 -c200 http://127.0.0.1:8787/ - Network accessline 104
ab -n100000 -c200 http://127.0.0.1:8787/ - Network accessline 109
# 200 concurrency, 10 seconds stress testing, enable keep-alive (default) wrk -c 200 -d 10s http://example.com - Network accessline 110
wrk -c 200 -d 10s http://example.com
skills/webman/references/en/others/bin.md
- Network accessline 48
## Download Standalone Static PHP Sometimes you only want a PHP executable without deploying a full PHP environment. Click [here to download static PHP](https://www.workerman.net/download). - Network accessline 49
Sometimes you only want a PHP executable without deploying a full PHP environment. Click [here to download static PHP](https://www.workerman.net/download). - Network accessline 59
https://github.com/crazywhalecc/static-php-cli - Network accessline 60
https://github.com/walkor/static-php-cli
skills/webman/references/en/others/disable-function-check.md
- Network accessline 3
Use this script to check for disabled functions. Run the command ```curl -Ss https://www.workerman.net/webman/check | php``` in the command line. - Network accessline 20
Execute the script `curl -Ss https://www.workerman.net/webman/fix-disable-functions | php` to enable the functions.
skills/webman/references/en/others/lifecycle.md
- Network accessline 16
## Controller Lifecycle - Each controller is instantiated only once per process, but multiple instantiations are possible across processes (unless controller reusing is disabled, see [Controller Lifecycle](https://www.workerman.net/doc/webm - Network accessline 17
- Each controller is instantiated only once per process, but multiple instantiations are possible across processes (unless controller reusing is disabled, see [Controller Lifecycle](https://www.workerman.net/doc/webman/controller.html#%E7%9
skills/webman/references/en/others/monitor.md
- Access to secretsline 25
[Credential-related source omitted]
skills/webman/references/en/others/nginx-proxy.md
skills/webman/references/en/others/phar.md
- Network accessline 5
**Very grateful to [fuzqing](https://github.com/fuzqing) for the PR.**
skills/webman/references/en/others/process.md
- Network accessline 20
2. Determine whether the URL matches a route. If not matched, proceed to step 3; if matched, proceed to step 4. 3. Check whether the default route is disabled. If yes, return 404 (end of request). If not, proceed to step 4. 4. Find the midd - Network accessline 22
4. Find the middlewares for the requested controller, execute middleware pre-operations in order (onion model request phase), execute the controller's business logic, execute middleware post-operations (onion model response phase), and conc
skills/webman/references/en/others/security.md
- Network accessline 6
## Controller Specification Only controller files are allowed in the `controller` directory or its subdirectories. Placing other types of files is prohibited. Otherwise, when the [controller suffix](https://www.workerman.net/doc/webman/cont - Network accessline 7
Only controller files are allowed in the `controller` directory or its subdirectories. Placing other types of files is prohibited. Otherwise, when the [controller suffix](https://www.workerman.net/doc/webman/controller.html#%E6%8E%A7%E5%88% - Network accessline 15
## Preventing SQL Injection To prevent SQL injection, it is strongly advised to use ORM as much as possible, such as [illuminate/database](https://www.workerman.net/doc/webman/db/tutorial.html) and [think-orm](https://www.workerman.net/doc/ - Network accessline 16
To prevent SQL injection, it is strongly advised to use ORM as much as possible, such as [illuminate/database](https://www.workerman.net/doc/webman/db/tutorial.html) and [think-orm](https://www.workerman.net/doc/webman/db/thinkorm.html), an
skills/webman/references/en/others/task.md
- Network accessline 11
#### Disadvantages Cannot directly return results to the client. If pushing results is needed, it must be coordinated with other services, such as using [webman/push](https://www.workerman.net/plugin/2) to push processing results. - Network accessline 12
Cannot directly return results to the client. If pushing results is needed, it must be coordinated with other services, such as using [webman/push](https://www.workerman.net/plugin/2) to push processing results. - Network accessline 30
'task' => [ 'handler' => \Webman\App::class, 'listen' => 'http://0.0.0.0:8686', - Network accessline 31
'handler' => \Webman\App::class, 'listen' => 'http://0.0.0.0:8686', 'count' => 8, // Number of processes - Network accessline 32
'listen' => 'http://0.0.0.0:8686', - Network accessline 47
This way, slow interfaces can go through the group of processes at `http://127.0.0.1:8686/` without affecting business processing of other processes. - Network accessline 72
proxy_http_version 1.1; proxy_set_header Connection ""; proxy_pass http://task; - Network accessline 73
proxy_set_header Connection ""; proxy_pass http://task; } - Network accessline 74
proxy_pass http://task; - Network accessline 82
proxy_set_header Connection ""; if (!-f $request_filename){ proxy_pass http://webman; - Network accessline 83
if (!-f $request_filename){ proxy_pass http://webman; } - Network accessline 84
proxy_pass http://webman; - Network accessline 116
$connection = $request->connection; $http = new \Workerman\Http\Client(); $http->get('https://example.com/', function ($response) use ($connection) { - Network accessline 117
$http = new \Workerman\Http\Client(); $http->get('https://example.com/', function ($response) use ($connection) { $connection->send(new Chunk($response->getBody())); - Network accessline 118
$http->get('https://example.com/', function ($response) use ($connection) { - Network accessline 130
> **Note** > This example uses the `workerman/http-client` client to asynchronously fetch HTTP results and return data. You can also use other async clients such as [AsyncTcpConnection](https://www.workerman.net/doc/workerman/async-tcp-conn - Network accessline 131
> This example uses the `workerman/http-client` client to asynchronously fetch HTTP results and return data. You can also use other async clients such as [AsyncTcpConnection](https://www.workerman.net/doc/workerman/async-tcp-connection/cons
skills/webman/references/en/plugin/app.md
- Network accessline 44
## URL Access The URL paths for application plugins all start with `/app`. For example, the URL for `plugin\cms\app\controller\UserController` is `http://127.0.0.1:8787/app/cms/user`. - Network accessline 45
The URL paths for application plugins all start with `/app`. For example, the URL for `plugin\cms\app\controller\UserController` is `http://127.0.0.1:8787/app/cms/user`. - Network accessline 47
## Static Files Static files are placed in `plugin/{plugin}/public`. For example, accessing `http://127.0.0.1:8787/app/cms/avatar.png` actually retrieves the file `plugin/cms/public/avatar.png`. - Network accessline 48
Static files are placed in `plugin/{plugin}/public`. For example, accessing `http://127.0.0.1:8787/app/cms/avatar.png` actually retrieves the file `plugin/cms/public/avatar.png`.
skills/webman/references/en/plugin/console.md
skills/webman/references/en/plugin/create.md
- Network accessline 52
### Submit Plugin * Assume you already have [GitHub](https://github.com) and [Packagist](https://packagist.org) accounts. - Network accessline 53
* Assume you already have [GitHub](https://github.com) and [Packagist](https://packagist.org) accounts. - Network accessline 54
* Create an `admin` repository on [GitHub](https://github.com) and push your code, e.g. `https://github.com/your-username/admin`. - Network accessline 55
* Go to `https://github.com/your-username/admin/releases/new` and create a release, e.g. `v1.0.0`. - Network accessline 56
* On [Packagist](https://packagist.org), click `Submit`, submit `https://github.com/your-username/admin`, and the plugin is published. - Network accessline 61
When you update the plugin, push to GitHub, create a new release at `https://github.com/your-username/admin/releases/new`, then click `Update` on `https://packagist.org/packages/foo/admin` to refresh the version.
skills/webman/references/en/plugin/push.md
- Network accessline 3
`webman/push` is a free push service server-side plugin, The client is based on the subscription mode, compatible with [pusher](https://pusher.com), and it has many clients such as JS, Android (java), IOS (swift), IOS (Obj-C), uniapp, .NET, - Network accessline 5
The plugin comes with a web page JS client push.js and a uniapp client `uniapp-push.js`, and other language clients can be downloaded at https://pusher.com/docs/channels/channels_libraries/libraries/ - Network accessline 61
$api = new Api( // Using the config directly in webman to obtain the configuration, if not in a webman environment, the corresponding configuration needs to be manually written 'http://127.0.0.1:3232', - Network accessline 62
// Using the config directly in webman to obtain the configuration, if not in a webman environment, the corresponding configuration needs to be manually written 'http://127.0.0.1:3232', config('plugin.webman.push.app.app_key'), - Network accessline 63
'http://127.0.0.1:3232', - Network accessline 139
location /app/<app_key> { proxy_pass http://127.0.0.1:3131; - Network accessline 140
{ proxy_pass http://127.0.0.1:3131; proxy_http_version 1.1; - Network accessline 141
proxy_pass http://127.0.0.1:3131; - Network accessline 219
## Other Client Addresses `webman/push` is compatible with pusher, and the addresses for other language clients (Java, Swift, .NET, Objective-C, Unity, Flutter, Android, IOS, AngularJS, etc.) can be downloaded at: https://pusher.com/docs/ch - Network accessline 221
https://pusher.com/docs/channels/channels_libraries/libraries/
skills/webman/references/en/process.md
skills/webman/references/en/queue/stomp.md
- Network accessline 3
Stomp is a Simple (Streaming) Text Orientated Messaging Protocol that provides an interoperable wire format allowing STOMP clients to communicate with any STOMP message broker. [workerman/stomp](https://github.com/walkor/stomp) implements t
skills/webman/references/en/request.md
- Network accessline 190
<form method="post" action="http://127.0.0.1:8787/upload/files" enctype="multipart/form-data"> - Network accessline 204
It is an array of instances of `webman\Http\UploadFile`. The `webman\Http\UploadFile` class inherits the native PHP [`SplFileInfo`](https://www.php.net/manual/zh/class.splfileinfo.php) class and provides some practical methods. - Network accessline 233
- The file will be renamed to a temporary file after upload, similar to `/tmp/workerman.upload.SRliMu` - The uploaded file size is limited by [defaultMaxPackageSize](http://doc.workerman.net/tcp-connection/default-max-package-size.html), wh - Network accessline 234
- The uploaded file size is limited by [defaultMaxPackageSize](http://doc.workerman.net/tcp-connection/default-max-package-size.html), which is 10M by default and can be changed in the `config/server.php` file by modifying `max_package_size
skills/webman/references/en/response.md
- Network accessline 406
{ $connection = $request->connection; // If https://api.openai.com is not accessible in your region, you can use https://api.openai-proxy.com instead - Network accessline 407
[Credential-related source omitted] - Network accessline 408
// If https://api.openai.com is not accessible in your region, you can use https://api.openai-proxy.com instead - Network accessline 409
[Credential-related source omitted]
skills/webman/references/en/route.md
- Network accessline 1
# Routing ## Default Routing Rules The default routing rule for webman is `http://127.0.0.1:8787/{controller}/{action}`. - Network accessline 3
The default routing rule for webman is `http://127.0.0.1:8787/{controller}/{action}`. - Network accessline 7
For example: - `http://127.0.0.1:8787` will by default access the `index` method of the `app\controller\IndexController` class. - Network accessline 8
- `http://127.0.0.1:8787` will by default access the `index` method of the `app\controller\IndexController` class. - Network accessline 9
- `http://127.0.0.1:8787/foo` will by default access the `index` method of the `app\controller\FooController` class. - Network accessline 10
- `http://127.0.0.1:8787/foo/test` will by default access the `test` method of the `app\controller\FooController` class. - Network accessline 11
- `http://127.0.0.1:8787/admin/foo/test` will by default access the `test` method of the `app\admin\controller\FooController` class (see [Multiple Applications](multiapp.md)). - Network accessline 49
When accessing `http://127.0.0.1:8787/test`, it will return the string `test`. - Network accessline 74
When accessing `http://127.0.0.1:8787/testclass`, it will return the result of the `test` method of the `app\controller\IndexController` class.
skills/webman/references/en/static.md
- Network accessline 3
webman supports access to static files, which are placed in the `public` directory. For example, accessing `http://127.0.0.8787/upload/avatar.png` actually accesses `{main project directory}/public/upload/avatar.png`.
skills/webman/references/en/thanks.md
- Network accessline 3
<tr> <td align="center"> <a href="https://github.com/Tinywan"> - Network accessline 4
<td align="center"> <a href="https://github.com/Tinywan"> <img src="https://avatars.githubusercontent.com/u/14959876?v=4" width="100px;"/><h5>Tinywan</h5> - Network accessline 5
<a href="https://github.com/Tinywan"> - Network accessline 6
<img src="https://avatars.githubusercontent.com/u/14959876?v=4" width="100px;"/><h5>Tinywan</h5> - Network accessline 8
</td> <td align="center"> <a href="https://github.com/yasarluo"> - Network accessline 9
<td align="center"> <a href="https://github.com/yasarluo"> <img src="https://avatars.githubusercontent.com/u/60771720?v=4" width="100px;"/><h5>yasarluo</h5> - Network accessline 10
<a href="https://github.com/yasarluo"> - Network accessline 11
<img src="https://avatars.githubusercontent.com/u/60771720?v=4" width="100px;"/><h5>yasarluo</h5> - Network accessline 13
</td> <td align="center"> <a href="https://github.com/latypoff"> - Network accessline 14
<td align="center"> <a href="https://github.com/latypoff"> <img src="https://avatars.githubusercontent.com/u/11870079?v=4" width="100px;"/><h5>latypoff</h5> - Network accessline 15
<a href="https://github.com/latypoff"> - Network accessline 16
<img src="https://avatars.githubusercontent.com/u/11870079?v=4" width="100px;"/><h5>latypoff</h5> - Network accessline 18
</td> <td align="center"> <a href="https://github.com/fuzqing"> - Network accessline 19
<td align="center"> <a href="https://github.com/fuzqing"> <img src="https://avatars.githubusercontent.com/u/15156836?v=4" width="100px;"/><h5>fuzqing</h5> - Network accessline 20
<a href="https://github.com/fuzqing"> - Network accessline 21
<img src="https://avatars.githubusercontent.com/u/15156836?v=4" width="100px;"/><h5>fuzqing</h5> - Network accessline 23
</td> <td align="center"> <a href="https://github.com/lengqiuqiuqiu"> - Network accessline 24
<td align="center"> <a href="https://github.com/lengqiuqiuqiu"> <img src="https://avatars.githubusercontent.com/u/149125167?v=4" width="100px;"/><h5>lengqiuqiuqiu</h5> - Network accessline 25
<a href="https://github.com/lengqiuqiuqiu"> - Network accessline 26
<img src="https://avatars.githubusercontent.com/u/149125167?v=4" width="100px;"/><h5>lengqiuqiuqiu</h5> - Network accessline 28
</td> <td align="center"> <a href="https://github.com/zjkal"> - Network accessline 29
<td align="center"> <a href="https://github.com/zjkal"> <img src="https://avatars.githubusercontent.com/u/15082976?v=4" width="100px;"/><h5>zjkal</h5> - Network accessline 30
<a href="https://github.com/zjkal"> - Network accessline 31
<img src="https://avatars.githubusercontent.com/u/15082976?v=4" width="100px;"/><h5>zjkal</h5> - Network accessline 33
</td> <td align="center"> <a href="https://github.com/limingxinleo"> - Network accessline 34
<td align="center"> <a href="https://github.com/limingxinleo"> <img src="https://avatars.githubusercontent.com/u/16648551?v=4" width="100px;"/><h5>limingxinleo</h5> - Network accessline 35
<a href="https://github.com/limingxinleo"> - Network accessline 36
<img src="https://avatars.githubusercontent.com/u/16648551?v=4" width="100px;"/><h5>limingxinleo</h5> - Network accessline 38
</td> <td align="center"> <a href="https://github.com/luoyue712"> - Network accessline 39
<td align="center"> <a href="https://github.com/luoyue712"> <img src="https://avatars.githubusercontent.com/u/102944161?v=4" width="100px;"/><h5>luoyue712</h5> - Network accessline 40
<a href="https://github.com/luoyue712"> - Network accessline 41
<img src="https://avatars.githubusercontent.com/u/102944161?v=4" width="100px;"/><h5>luoyue712</h5> - Network accessline 45
<tr> <td align="center"> <a href="https://github.com/ooing"> - Network accessline 46
<td align="center"> <a href="https://github.com/ooing"> <img src="https://avatars.githubusercontent.com/u/5188151?v=4" width="100px;"/><h5>ooing</h5> - Network accessline 47
<a href="https://github.com/ooing"> - Network accessline 48
<img src="https://avatars.githubusercontent.com/u/5188151?v=4" width="100px;"/><h5>ooing</h5> - Network accessline 50
</td> <td align="center"> <a href="https://github.com/tianyiw2013"> - Network accessline 51
<td align="center"> <a href="https://github.com/tianyiw2013"> <img src="https://avatars.githubusercontent.com/u/4644588?v=4" width="100px;"/><h5>tianyiw2013</h5> - Network accessline 52
<a href="https://github.com/tianyiw2013"> - Network accessline 53
<img src="https://avatars.githubusercontent.com/u/4644588?v=4" width="100px;"/><h5>tianyiw2013</h5> - Network accessline 55
</td> <td align="center"> <a href="https://github.com/Maoxp"> - Network accessline 56
<td align="center"> <a href="https://github.com/Maoxp"> <img src="https://avatars.githubusercontent.com/u/37761489?v=4" width="100px;"/><h5>Maoxp</h5> - Network accessline 57
<a href="https://github.com/Maoxp"> - Network accessline 58
<img src="https://avatars.githubusercontent.com/u/37761489?v=4" width="100px;"/><h5>Maoxp</h5> - Network accessline 60
</td> <td align="center"> <a href="https://github.com/codinglist"> - Network accessline 61
<td align="center"> <a href="https://github.com/codinglist"> <img src="https://avatars.githubusercontent.com/u/49902313?v=4" width="100px;"/><h5>codinglist</h5> - Network accessline 62
<a href="https://github.com/codinglist"> - Network accessline 63
<img src="https://avatars.githubusercontent.com/u/49902313?v=4" width="100px;"/><h5>codinglist</h5> - Network accessline 65
</td> <td align="center"> <a href="https://github.com/detain"> - Network accessline 66
<td align="center"> <a href="https://github.com/detain"> <img src="https://avatars.githubusercontent.com/u/1364504?v=4" width="100px;"/><h5>detain</h5> - Network accessline 67
<a href="https://github.com/detain"> - Network accessline 68
<img src="https://avatars.githubusercontent.com/u/1364504?v=4" width="100px;"/><h5>detain</h5> - Network accessline 70
</td> <td align="center"> <a href="https://github.com/fplun"> - Network accessline 71
<td align="center"> <a href="https://github.com/fplun"> <img src="https://avatars.githubusercontent.com/u/38807395?v=4" width="100px;"/><h5>fplun</h5> - Network accessline 72
<a href="https://github.com/fplun"> - Network accessline 73
<img src="https://avatars.githubusercontent.com/u/38807395?v=4" width="100px;"/><h5>fplun</h5> - Network accessline 75
</td> <td align="center"> <a href="https://github.com/hkui"> - Network accessline 76
<td align="center"> <a href="https://github.com/hkui"> <img src="https://avatars.githubusercontent.com/u/4144760?v=4" width="100px;"/><h5>hkui</h5> - Network accessline 77
<a href="https://github.com/hkui"> - Network accessline 78
<img src="https://avatars.githubusercontent.com/u/4144760?v=4" width="100px;"/><h5>hkui</h5> - Network accessline 80
</td> <td align="center"> <a href="https://github.com/ichynul"> - Network accessline 81
<td align="center"> <a href="https://github.com/ichynul"> <img src="https://avatars.githubusercontent.com/u/10061650?v=4" width="100px;"/><h5>ichynul</h5> - Network accessline 82
<a href="https://github.com/ichynul"> - Network accessline 83
<img src="https://avatars.githubusercontent.com/u/10061650?v=4" width="100px;"/><h5>ichynul</h5> - Network accessline 87
<tr> <td align="center"> <a href="https://github.com/jetlong"> - Network accessline 88
<td align="center"> <a href="https://github.com/jetlong"> <img src="https://avatars.githubusercontent.com/u/6326231?v=4" width="100px;"/><h5>jetlong</h5> - Network accessline 89
<a href="https://github.com/jetlong"> - Network accessline 90
<img src="https://avatars.githubusercontent.com/u/6326231?v=4" width="100px;"/><h5>jetlong</h5> - Network accessline 92
</td> <td align="center"> <a href="https://github.com/krissss"> - Network accessline 93
<td align="center"> <a href="https://github.com/krissss"> <img src="https://avatars.githubusercontent.com/u/10680903?v=4" width="100px;"/><h5>krissss</h5> - Network accessline 94
<a href="https://github.com/krissss"> - Network accessline 95
<img src="https://avatars.githubusercontent.com/u/10680903?v=4" width="100px;"/><h5>krissss</h5> - Network accessline 97
</td> <td align="center"> <a href="https://github.com/leekung"> - Network accessline 98
<td align="center"> <a href="https://github.com/leekung"> <img src="https://avatars.githubusercontent.com/u/3615383?v=4" width="100px;"/><h5>leekung</h5> - Network accessline 99
<a href="https://github.com/leekung"> - Network accessline 100
<img src="https://avatars.githubusercontent.com/u/3615383?v=4" width="100px;"/><h5>leekung</h5> - Network accessline 102
</td> <td align="center"> <a href="https://github.com/mouyong"> - Network accessline 103
<td align="center"> <a href="https://github.com/mouyong"> <img src="https://avatars.githubusercontent.com/u/10336437?v=4" width="100px;"/><h5>mouyong</h5> - Network accessline 104
<a href="https://github.com/mouyong"> - Network accessline 105
<img src="https://avatars.githubusercontent.com/u/10336437?v=4" width="100px;"/><h5>mouyong</h5> - Network accessline 107
</td> <td align="center"> <a href="https://github.com/mrtwenty"> - Network accessline 108
<td align="center"> <a href="https://github.com/mrtwenty"> <img src="https://avatars.githubusercontent.com/u/4883839?v=4" width="100px;"/><h5>mrtwenty</h5> - Network accessline 109
<a href="https://github.com/mrtwenty"> - Network accessline 110
<img src="https://avatars.githubusercontent.com/u/4883839?v=4" width="100px;"/><h5>mrtwenty</h5> - Network accessline 112
</td> <td align="center"> <a href="https://github.com/rmbrun"> - Network accessline 113
<td align="center"> <a href="https://github.com/rmbrun"> <img src="https://avatars.githubusercontent.com/u/151801295?v=4" width="100px;"/><h5>rmbrun</h5> - Network accessline 114
<a href="https://github.com/rmbrun"> - Network accessline 115
<img src="https://avatars.githubusercontent.com/u/151801295?v=4" width="100px;"/><h5>rmbrun</h5> - Network accessline 117
</td> <td align="center"> <a href="https://github.com/sunsgneayo"> - Network accessline 118
<td align="center"> <a href="https://github.com/sunsgneayo"> <img src="https://avatars.githubusercontent.com/u/51745500?v=4" width="100px;"/><h5>sunsgneayo</h5> - Network accessline 119
<a href="https://github.com/sunsgneayo"> - Network accessline 120
<img src="https://avatars.githubusercontent.com/u/51745500?v=4" width="100px;"/><h5>sunsgneayo</h5> - Network accessline 122
</td> <td align="center"> <a href="https://github.com/teg1c"> - Network accessline 123
<td align="center"> <a href="https://github.com/teg1c"> <img src="https://avatars.githubusercontent.com/u/27796058?v=4" width="100px;"/><h5>teg1c</h5> - Network accessline 124
<a href="https://github.com/teg1c"> - Network accessline 125
<img src="https://avatars.githubusercontent.com/u/27796058?v=4" width="100px;"/><h5>teg1c</h5> - Network accessline 129
<tr> <td align="center"> <a href="https://github.com/uax"> - Network accessline 130
<td align="center"> <a href="https://github.com/uax"> <img src="https://avatars.githubusercontent.com/u/10324413?v=4" width="100px;"/><h5>uax</h5> - Network accessline 131
<a href="https://github.com/uax"> - Network accessline 132
<img src="https://avatars.githubusercontent.com/u/10324413?v=4" width="100px;"/><h5>uax</h5> - Network accessline 134
</td> <td align="center"> <a href="https://github.com/Chance-fyi"> - Network accessline 135
<td align="center"> <a href="https://github.com/Chance-fyi"> <img src="https://avatars.githubusercontent.com/u/37658940?v=4" width="100px;"/><h5>Chance-fyi</h5> - Network accessline 136
<a href="https://github.com/Chance-fyi"> - Network accessline 137
<img src="https://avatars.githubusercontent.com/u/37658940?v=4" width="100px;"/><h5>Chance-fyi</h5> - Network accessline 139
</td> <td align="center"> <a href="https://github.com/ChuckWe"> - Network accessline 140
<td align="center"> <a href="https://github.com/ChuckWe"> <img src="https://avatars.githubusercontent.com/u/32729062?v=4" width="100px;"/><h5>ChuckWe</h5> - Network accessline 141
<a href="https://github.com/ChuckWe"> - Network accessline 142
<img src="https://avatars.githubusercontent.com/u/32729062?v=4" width="100px;"/><h5>ChuckWe</h5> - Network accessline 144
</td> <td align="center"> <a href="https://github.com/JenkingWang"> - Network accessline 145
<td align="center"> <a href="https://github.com/JenkingWang"> <img src="https://avatars.githubusercontent.com/u/86818420?v=4" width="100px;"/><h5>JenkingWang</h5> - Network accessline 146
<a href="https://github.com/JenkingWang"> - Network accessline 147
<img src="https://avatars.githubusercontent.com/u/86818420?v=4" width="100px;"/><h5>JenkingWang</h5> - Network accessline 149
</td> <td align="center"> <a href="https://github.com/abandon1a2b"> - Network accessline 150
<td align="center"> <a href="https://github.com/abandon1a2b"> <img src="https://avatars.githubusercontent.com/u/28970107?v=4" width="100px;"/><h5>abandon1a2b</h5> - Network accessline 151
<a href="https://github.com/abandon1a2b"> - Network accessline 152
<img src="https://avatars.githubusercontent.com/u/28970107?v=4" width="100px;"/><h5>abandon1a2b</h5> - Network accessline 154
</td> <td align="center"> <a href="https://github.com/bangbangda"> - Network accessline 155
<td align="center"> <a href="https://github.com/bangbangda"> <img src="https://avatars.githubusercontent.com/u/13864407?v=4" width="100px;"/><h5>bangbangda</h5> - Network accessline 156
<a href="https://github.com/bangbangda"> - Network accessline 157
<img src="https://avatars.githubusercontent.com/u/13864407?v=4" width="100px;"/><h5>bangbangda</h5> - Network accessline 159
</td> <td align="center"> <a href="https://github.com/chaz6chez"> - Network accessline 160
<td align="center"> <a href="https://github.com/chaz6chez"> <img src="https://avatars.githubusercontent.com/u/22535862?v=4" width="100px;"/><h5>chaz6chez</h5> - Network accessline 161
<a href="https://github.com/chaz6chez"> - Network accessline 162
<img src="https://avatars.githubusercontent.com/u/22535862?v=4" width="100px;"/><h5>chaz6chez</h5> - Network accessline 164
</td> <td align="center"> <a href="https://github.com/daweism"> - Network accessline 165
<td align="center"> <a href="https://github.com/daweism"> <img src="https://avatars.githubusercontent.com/u/15864429?v=4" width="100px;"/><h5>daweism</h5> - Network accessline 166
<a href="https://github.com/daweism"> - Network accessline 167
<img src="https://avatars.githubusercontent.com/u/15864429?v=4" width="100px;"/><h5>daweism</h5> - Network accessline 171
<tr> <td align="center"> <a href="https://github.com/dlsimple"> - Network accessline 172
<td align="center"> <a href="https://github.com/dlsimple"> <img src="https://avatars.githubusercontent.com/u/931459?v=4" width="100px;"/><h5>dlsimple</h5> - Network accessline 173
<a href="https://github.com/dlsimple"> - Network accessline 174
<img src="https://avatars.githubusercontent.com/u/931459?v=4" width="100px;"/><h5>dlsimple</h5> - Network accessline 176
</td> <td align="center"> <a href="https://github.com/edenleung"> - Network accessline 177
<td align="center"> <a href="https://github.com/edenleung"> <img src="https://avatars.githubusercontent.com/u/31346973?v=4" width="100px;"/><h5>edenleung</h5> - Network accessline 178
<a href="https://github.com/edenleung"> - Network accessline 179
<img src="https://avatars.githubusercontent.com/u/31346973?v=4" width="100px;"/><h5>edenleung</h5> - Network accessline 181
</td> <td align="center"> <a href="https://github.com/fengkuangdewenzi"> - Network accessline 182
<td align="center"> <a href="https://github.com/fengkuangdewenzi"> <img src="https://avatars.githubusercontent.com/u/18565373?v=4" width="100px;"/><h5>fengkuangdewenzi</h5> - Network accessline 183
<a href="https://github.com/fengkuangdewenzi"> - Network accessline 184
<img src="https://avatars.githubusercontent.com/u/18565373?v=4" width="100px;"/><h5>fengkuangdewenzi</h5> - Network accessline 186
</td> <td align="center"> <a href="https://github.com/guanhui07"> - Network accessline 187
<td align="center"> <a href="https://github.com/guanhui07"> <img src="https://avatars.githubusercontent.com/u/5820457?v=4" width="100px;"/><h5>guanhui07</h5> - Network accessline 188
<a href="https://github.com/guanhui07"> - Network accessline 189
<img src="https://avatars.githubusercontent.com/u/5820457?v=4" width="100px;"/><h5>guanhui07</h5> - Network accessline 191
</td> <td align="center"> <a href="https://github.com/hideplan"> - Network accessline 192
<td align="center"> <a href="https://github.com/hideplan"> <img src="https://avatars.githubusercontent.com/u/163526983?v=4" width="100px;"/><h5>hideplan</h5> - Network accessline 193
<a href="https://github.com/hideplan"> - Network accessline 194
<img src="https://avatars.githubusercontent.com/u/163526983?v=4" width="100px;"/><h5>hideplan</h5> - Network accessline 196
</td> <td align="center"> <a href="https://github.com/hiders-cn"> - Network accessline 197
<td align="center"> <a href="https://github.com/hiders-cn"> <img src="https://avatars.githubusercontent.com/u/37099678?v=4" width="100px;"/><h5>hiders-cn</h5> - Network accessline 198
<a href="https://github.com/hiders-cn"> - Network accessline 199
<img src="https://avatars.githubusercontent.com/u/37099678?v=4" width="100px;"/><h5>hiders-cn</h5> - Network accessline 201
</td> <td align="center"> <a href="https://github.com/keanu-jinu"> - Network accessline 202
<td align="center"> <a href="https://github.com/keanu-jinu"> <img src="https://avatars.githubusercontent.com/u/183342407?v=4" width="100px;"/><h5>keanu-jinu</h5> - Network accessline 203
<a href="https://github.com/keanu-jinu"> - Network accessline 204
<img src="https://avatars.githubusercontent.com/u/183342407?v=4" width="100px;"/><h5>keanu-jinu</h5> - Network accessline 206
</td> <td align="center"> <a href="https://github.com/lepig"> - Network accessline 207
<td align="center"> <a href="https://github.com/lepig"> <img src="https://avatars.githubusercontent.com/u/5689279?v=4" width="100px;"/><h5>lepig</h5> - Network accessline 208
<a href="https://github.com/lepig"> - Network accessline 209
<img src="https://avatars.githubusercontent.com/u/5689279?v=4" width="100px;"/><h5>lepig</h5> - Network accessline 213
<tr> <td align="center"> <a href="https://github.com/oladoyinbov"> - Network accessline 214
<td align="center"> <a href="https://github.com/oladoyinbov"> <img src="https://avatars.githubusercontent.com/u/73993087?v=4" width="100px;"/><h5>oladoyinbov</h5> - Network accessline 215
<a href="https://github.com/oladoyinbov"> - Network accessline 216
<img src="https://avatars.githubusercontent.com/u/73993087?v=4" width="100px;"/><h5>oladoyinbov</h5> - Network accessline 218
</td> <td align="center"> <a href="https://github.com/qiqizjl"> - Network accessline 219
<td align="center"> <a href="https://github.com/qiqizjl"> <img src="https://avatars.githubusercontent.com/u/7540584?v=4" width="100px;"/><h5>qiqizjl</h5> - Network accessline 220
<a href="https://github.com/qiqizjl"> - Network accessline 221
<img src="https://avatars.githubusercontent.com/u/7540584?v=4" width="100px;"/><h5>qiqizjl</h5> - Network accessline 223
</td> <td align="center"> <a href="https://github.com/tingfeng-key"> - Network accessline 224
<td align="center"> <a href="https://github.com/tingfeng-key"> <img src="https://avatars.githubusercontent.com/u/13976521?v=4" width="100px;"/><h5>tingfeng-key</h5> - Network accessline 225
<a href="https://github.com/tingfeng-key"> - Network accessline 226
<img src="https://avatars.githubusercontent.com/u/13976521?v=4" width="100px;"/><h5>tingfeng-key</h5> - Network accessline 228
</td> <td align="center"> <a href="https://github.com/try-to"> - Network accessline 229
<td align="center"> <a href="https://github.com/try-to"> <img src="https://avatars.githubusercontent.com/u/28919584?v=4" width="100px;"/><h5>try-to</h5> - Network accessline 230
<a href="https://github.com/try-to"> - Network accessline 231
<img src="https://avatars.githubusercontent.com/u/28919584?v=4" width="100px;"/><h5>try-to</h5> - Network accessline 233
</td> <td align="center"> <a href="https://github.com/wansxlysys"> - Network accessline 234
<td align="center"> <a href="https://github.com/wansxlysys"> <img src="https://avatars.githubusercontent.com/u/38864787?v=4" width="100px;"/><h5>wansxlysys</h5> - Network accessline 235
<a href="https://github.com/wansxlysys"> - Network accessline 236
<img src="https://avatars.githubusercontent.com/u/38864787?v=4" width="100px;"/><h5>wansxlysys</h5> - Network accessline 238
</td> <td align="center"> <a href="https://github.com/willvar"> - Network accessline 239
<td align="center"> <a href="https://github.com/willvar"> <img src="https://avatars.githubusercontent.com/u/60428823?v=4" width="100px;"/><h5>willvar</h5> - Network accessline 240
<a href="https://github.com/willvar"> - Network accessline 241
<img src="https://avatars.githubusercontent.com/u/60428823?v=4" width="100px;"/><h5>willvar</h5> - Network accessline 243
</td> <td align="center"> <a href="https://github.com/woodongwong"> - Network accessline 244
<td align="center"> <a href="https://github.com/woodongwong"> <img src="https://avatars.githubusercontent.com/u/9292647?v=4" width="100px;"/><h5>woodongwong</h5> - Network accessline 245
<a href="https://github.com/woodongwong"> - Network accessline 246
<img src="https://avatars.githubusercontent.com/u/9292647?v=4" width="100px;"/><h5>woodongwong</h5> - Network accessline 248
</td> <td align="center"> <a href="https://github.com/zzbfun"> - Network accessline 249
<td align="center"> <a href="https://github.com/zzbfun"> <img src="https://avatars.githubusercontent.com/u/55395892?v=4" width="100px;"/><h5>zzbfun</h5> - Network accessline 250
<a href="https://github.com/zzbfun"> - Network accessline 251
<img src="https://avatars.githubusercontent.com/u/55395892?v=4" width="100px;"/><h5>zzbfun</h5>
skills/webman/references/en/tutorial.md
skills/webman/references/en/upgrade/1-5.md
- Network accessline 8
Support for workerman v5 [Fiber](https://www.workerman.net/doc/workerman/fiber.html) - Network accessline 56
static $client; $client = $client ?: new Client(); $response = $client->get('http://example.com'); // Synchronously initiates an asynchronous request - Network accessline 57
$client = $client ?: new Client(); $response = $client->get('http://example.com'); // Synchronously initiates an asynchronous request return $response->getBody()->getContents(); - Network accessline 58
$response = $client->get('http://example.com'); // Synchronously initiates an asynchronous request - Network accessline 65
For more information, refer to [workerman/http-client](https://www.workerman.net/doc/workerman/components/workerman-http-client.html) - Network accessline 95
When the number of processes is set to 1, if we make two consecutive requests: http://127.0.0.1:8787/test?name=lilei - Network accessline 96
http://127.0.0.1:8787/test?name=lilei http://127.0.0.1:8787/test?name=hanmeimei, we expect the results of the two requests to be `lilei` and `hanmeimei` respectively, but in reality, both return `hanmeimei`. - Network accessline 97
http://127.0.0.1:8787/test?name=hanmeimei, we expect the results of the two requests to be `lilei` and `hanmeimei` respectively, but in reality, both return `hanmeimei`. This is because the second request overwrites the static variable `$na - Network accessline 148
Webman's blocking programming is already fast enough. According to [techempower.com](https://www.techempower.com/benchmarks/#section=data-r21&l=zijnjz-6bj&test=db&f=1ekg-cbcw-2t4w-27wr68-pc0-iv9slc-0-1ekgw-39g-kxs00-o0zk-4fu13d-2x8do8-2) be - Network accessline 156
When there are slow accesses in the business, such as when the business needs to access third-party interfaces, you can use [workerman/http-client](https://www.workerman.net/doc/workerman/components/workerman-http-client.html) to initiate a
skills/webman/references/en/upgrade/1-6.md
- Network accessline 62
For more information, refer to [Controller Parameter Binding](https://www.workerman.net/doc/webman/controller.html#controller-parameter-binding) - Network accessline 109
[More reference documentation](https://www.workerman.net/doc/webman/route.html#disable-default-routes) - Network accessline 121
[More reference documentation](https://www.workerman.net/doc/webman/request.html#override-parameters)
skills/webman/references/en/view.md
- Network accessline 3
By default, webman uses the native PHP syntax as the template and achieves the best performance when `opcache` is enabled. In addition to the PHP native template, webman also provides support for template engines such as [Twig](https://twig - Network accessline 149
For more information, refer to [Twig](https://twig.symfony.com/doc/3.x/). - Network accessline 194
For more information, refer to [Blade](https://learnku.com/docs/laravel/8.x/blade/9377). - Network accessline 236
For more information, refer to [think-template](https://www.kancloud.cn/manual/think-template/content). - Network accessline 442
For details, please refer to [think-template tag extension](https://www.kancloud.cn/manual/think-template/1286424)
skills/webman/references/zh-cn/README.md
- Executable scriptline 1
Executable file - Network accessline 6
> **注意** > 当前文档为`webman v2`版本,如果你使用的是v1版本,请查看[webman v1文档](https://www.workerman.net/doc/webman-v1/) - Network accessline 7
> 当前文档为`webman v2`版本,如果你使用的是v1版本,请查看[webman v1文档](https://www.workerman.net/doc/webman-v1/) - Network accessline 30
# 项目地址 GitHub: https://github.com/walkor/webman **不要吝啬你的小星星哦** - Network accessline 31
GitHub: https://github.com/walkor/webman **不要吝啬你的小星星哦** - Network accessline 33
码云: https://gitee.com/walkor/webman **不要吝啬你的小星星哦** - Network accessline 38
[](https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf) - Network accessline 43
[](https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf) - Network accessline 48
以上数据来自[techempower.com](https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf)
skills/webman/references/zh-cn/SUMMARY.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/aop.md
skills/webman/references/zh-cn/app/admin.md
- Executable scriptline 1
Executable file - Network accessline 3
[webman-admin](https://www.workerman.net/plugin/82) 是webman官方开发的管理后台。 - Network accessline 12
## 接入文档 https://www.workerman.net/doc/webman-admin/development/link.html - Network accessline 13
https://www.workerman.net/doc/webman-admin/development/link.html
skills/webman/references/zh-cn/app/app.md
skills/webman/references/zh-cn/app/config.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/app/controller.md
- Executable scriptline 1
Executable file - Network accessline 27
当访问 `http://127.0.0.1:8787/app/foo/foo` 时,页面返回 `hello index` - Network accessline 29
当访问 `http://127.0.0.1:8787/app/foo/foo/hello` 时,页面返回 `hello webman` - Network accessline 32
## url访问 应用插件url地址路径都以`/app`开头,后面接插件标识,然后是具体的控制器及方法。 例如`plugin\foo\app\controller\UserController`url地址是 `http://127.0.0.1:8787/app/foo/user` - Network accessline 34
例如`plugin\foo\app\controller\UserController`url地址是 `http://127.0.0.1:8787/app/foo/user`
skills/webman/references/zh-cn/app/create.md
skills/webman/references/zh-cn/app/database.md
skills/webman/references/zh-cn/app/directory.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/app/install.md
- Executable scriptline 1
Executable file - Network accessline 5
## 在插件市场安装 进入 [官方管理后台webman-admin](https://www.workerman.net/plugin/82) 的应用插件页点击安装按钮安装对应的应用插件。 - Network accessline 6
进入 [官方管理后台webman-admin](https://www.workerman.net/plugin/82) 的应用插件页点击安装按钮安装对应的应用插件。 - Network accessline 18
## 在插件市场卸载 进入 [官方管理后台webman-admin](https://www.workerman.net/plugin/82) 的应用插件页点击卸载按钮卸载对应的应用插件。 - Network accessline 19
进入 [官方管理后台webman-admin](https://www.workerman.net/plugin/82) 的应用插件页点击卸载按钮卸载对应的应用插件。
skills/webman/references/zh-cn/app/log.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/app/market.md
skills/webman/references/zh-cn/app/pack.md
- Executable scriptline 1
Executable file - Network accessline 7
* 如果你的项目包含数据库建表等操作,需要设置好`plugin/foo/install.sql`,参见[安装数据库部分](database.md#自动导入数据库) * 如果你的项目有自己独立的数据库、Redis配置,需要先删除这些配置,这些配置应该是在首次访问应用时触发安装引导程序(需要自行实现),让管理员手动填写并生成。 * 如果你的项目包含webman admin后台菜单,需要设置好 `plugin/foo/config/menu.php`,这样安装插件时会自动设置这些菜 - Network accessline 8
* 如果你的项目有自己独立的数据库、Redis配置,需要先删除这些配置,这些配置应该是在首次访问应用时触发安装引导程序(需要自行实现),让管理员手动填写并生成。 * 如果你的项目包含webman admin后台菜单,需要设置好 `plugin/foo/config/menu.php`,这样安装插件时会自动设置这些菜单。具体参见[webman-admin导入菜单](https://www.workerman.net/doc/webman-admin/app-developmen - Network accessline 9
* 如果你的项目包含webman admin后台菜单,需要设置好 `plugin/foo/config/menu.php`,这样安装插件时会自动设置这些菜单。具体参见[webman-admin导入菜单](https://www.workerman.net/doc/webman-admin/app-development/menu.html)
skills/webman/references/zh-cn/app/publish.md
skills/webman/references/zh-cn/app/redis.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/app/route.md
skills/webman/references/zh-cn/app/standard.md
skills/webman/references/zh-cn/app/static.md
skills/webman/references/zh-cn/app/view.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/attention.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/bt-install.md
- Network accessline 44
proxy_set_header Connection ""; if (!-f $request_filename){ proxy_pass http://127.0.0.1:8787; - Network accessline 45
if (!-f $request_filename){ proxy_pass http://127.0.0.1:8787; } - Network accessline 46
proxy_pass http://127.0.0.1:8787; - Dangerous shell operationline 71
chmod -R 777 /www/wwwroot/webman/runtime - Network accessline 83
访问站点 `http://example.com` 即可看到webman的欢迎页面
skills/webman/references/zh-cn/casbin.md
- Executable scriptline 1
Executable file - Network accessline 5
它基于 [PHP-Casbin](https://github.com/php-casbin/php-casbin), 一个强大的、高效的开源访问控制框架,支持基于`ACL`, `RBAC`, `ABAC`等访问控制模型。 - Network accessline 9
https://github.com/Tinywan/webman-permission - Network accessline 16
> 该扩展需要 PHP 7.1+ 和 [ThinkORM](https://www.kancloud.cn/manual/think-orm/1257998),官方手册:https://www.workerman.net/doc/webman#/db/others - Network accessline 170
[Casbin](https://github.com/php-casbin/php-casbin),你可以查看全部文档在其 [官网](https://casbin.org/) 上。
skills/webman/references/zh-cn/components/captcha.md
skills/webman/references/zh-cn/components/casbin.md
- Executable scriptline 1
Executable file - Network accessline 9
https://github.com/teamones-open/casbin - Network accessline 21
https://casbin.org/docs/zh-CN/overview - Network accessline 50
* * More information on writing migrations is available here: * http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class - Network accessline 51
* More information on writing migrations is available here: * http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class * - Network accessline 52
* http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class - Network accessline 94
权限规则模型配置语法请看:https://casbin.org/docs/zh-CN/syntax-for-models - Network accessline 172
- 管理API: https://casbin.org/docs/zh-CN/management-api - Network accessline 173
- RBAC API: https://casbin.org/docs/zh-CN/rbac-api
skills/webman/references/zh-cn/components/crontab.md
skills/webman/references/zh-cn/components/env.md
skills/webman/references/zh-cn/components/event.md
skills/webman/references/zh-cn/components/excel.md
skills/webman/references/zh-cn/components/generate_error_code.md
skills/webman/references/zh-cn/components/image.md
skills/webman/references/zh-cn/components/paginator.md
skills/webman/references/zh-cn/components/pay.md
- Executable scriptline 1
Executable file - Network accessline 6
https://github.com/yansongda/pay - Network accessline 27
protected $config = [ 'app_id' => '2016082000295641', 'notify_url' => 'http://yansongda.cn/notify.php', - Network accessline 28
'app_id' => '2016082000295641', 'notify_url' => 'http://yansongda.cn/notify.php', 'return_url' => 'http://yansongda.cn/return.php', - Network accessline 29
'notify_url' => 'http://yansongda.cn/notify.php', - Network accessline 30
'return_url' => 'http://yansongda.cn/return.php', - Possible obfuscationline 31
'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWJKrQ6SWvS6niI+4vEVZiYfjkCfLQfoFI2nCp9ZLDS42QtiL4Ccyx8scgc3nhVwmVRte8f57TFvGhvJD0upT4O5O/lRxmTjechXAorirVdAODpOu0mFfQV9y/T9o9hHnU+VmO5spoVb3umqpq6D/Pt8p25Yk852/w01VTIczrXC4Ql - Possible obfuscationline 33
'private_key' => 'MIIEpAIBAAKCAQEAs6+F2leOgOrvj9jTeDhb5q46GewOjqLBlGSs/bVL4Z3fMr3p+Q1Tux/6uogeVi/eHd84xvQdfpZ87A1SfoWnEGH5z15yorccxSOwWUI+q8gz51IWqjgZxhWKe31BxNZ+prnQpyeMBtE25fXp5nQZ/pftgePyUUvUZRcAUisswntobDQKbwx28VCXw5XB2A+lvYEvxmMv/QexYj - Network accessline 44
'timeout' => 5.0, 'connect_timeout' => 5.0, // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) - Network accessline 45
'connect_timeout' => 5.0, // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) ], - Network accessline 46
// 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) - Network accessline 113
'mch_id' => '14577xxxx', 'key' => 'mF2suE9sU6Mk1Cxxxxxxxxxxx', 'notify_url' => 'http://yanda.net.cn/notify.php', - Network accessline 114
'key' => 'mF2suE9sU6Mk1Cxxxxxxxxxxx', 'notify_url' => 'http://yanda.net.cn/notify.php', 'cert_client' => './cert/apiclient_cert.pem', // optional,退款等情况时用到 - Network accessline 115
'notify_url' => 'http://yanda.net.cn/notify.php', - Network accessline 125
'timeout' => 5.0, 'connect_timeout' => 5.0, // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) - Network accessline 126
'connect_timeout' => 5.0, // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) ], - Network accessline 127
// 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) - Network accessline 169
访问 https://pay.yanda.net.cn/docs/2.x/overview
skills/webman/references/zh-cn/components/payment.md
- Network accessline 6
https://github.com/yansongda/pay - Network accessline 42
'alipay_root_cert_path' => base_path().'/payment/alipayRootCert.crt', // 选填-同步回调地址 'return_url' => 'https://webman.tinywan.cn/payment/alipay-return', - Network accessline 43
// 选填-同步回调地址 'return_url' => 'https://webman.tinywan.cn/payment/alipay-return', // 选填-异步回调地址 - Network accessline 44
'return_url' => 'https://webman.tinywan.cn/payment/alipay-return', - Network accessline 45
// 选填-异步回调地址 'notify_url' => 'https://webman.tinywan.cn/payment/alipay-notify', // 选填-服务商模式下的服务商 id,当 mode 为 Pay::MODE_SERVICE 时使用该参数 - Network accessline 46
'notify_url' => 'https://webman.tinywan.cn/payment/alipay-notify', - Network accessline 62
'mch_public_cert_path' => '', // 必填 'notify_url' => 'https://yansongda.cn/wechat/notify', - Network accessline 63
// 必填 'notify_url' => 'https://yansongda.cn/wechat/notify', // 选填-公众号 的 app_id - Network accessline 64
'notify_url' => 'https://yansongda.cn/wechat/notify', - Network accessline 99
'timeout' => 5.0, 'connect_timeout' => 5.0, // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) - Network accessline 100
'connect_timeout' => 5.0, // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) ] - Network accessline 101
// 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) - Network accessline 204
访问官方文档 https://pay.yansongda.cn/docs/v3/
skills/webman/references/zh-cn/components/rate-limiter.md
skills/webman/references/zh-cn/components/translation.md
- Executable scriptline 1
Executable file - Network accessline 3
多语言使用的是 [symfony/translation](https://github.com/symfony/translation) 组件。 - Network accessline 74
访问 `http://127.0.0.1:8787/user/get` 将返回 "你好 世界!" - Network accessline 104
访问 `http://127.0.0.1:8787/user/get` 将返回 "hello world!" - Network accessline 221
## 更多信息 参考 [symfony/translation手册](https://symfony.com/doc/current/translation.html) - Network accessline 222
参考 [symfony/translation手册](https://symfony.com/doc/current/translation.html)
skills/webman/references/zh-cn/components/unitest.md
- Executable scriptline 1
Executable file - Network accessline 11
项目根目录新增配置文件 phpunit.xml [phpunit.xml 配置项文档](https://docs.phpunit.de/en/12.4/configuration.html) 可按照项目需求进行自定义配置 - Network accessline 14
<?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - Network accessline 15
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
skills/webman/references/zh-cn/components/validation.md
- Executable scriptline 1
Executable file - Network accessline 872
验证字段必须是 Unicode 字母([\p{L}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AL%3A%5D&g=&i=) 与 [\p{M}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AM%3A%5D&g=&i=))。 - Network accessline 885
验证字段只能包含 Unicode 字母数字([\p{L}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AL%3A%5D&g=&i=)、[\p{M}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AM%3A%5D&g=&i=)、[\p{N}](https://util.unicode.org/UnicodeJs - Network accessline 898
验证字段只能包含 Unicode 字母数字([\p{L}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AL%3A%5D&g=&i=)、[\p{M}](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3AM%3A%5D&g=&i=)、[\p{N}](https://util.unicode.org/UnicodeJs - Network accessline 1082
验证字段必须匹配给定格式之一。使用 `date` 或 `date_format` 二选一即可。该规则支持 PHP [DateTime](https://www.php.net/manual/en/class.datetime.php) 的所有格式。 - Network accessline 1216
验证字段必须是有效邮箱地址。该规则依赖 [egulias/email-validator](https://github.com/egulias/EmailValidator),默认使用 `RFCValidation`,也可指定其他验证方式: - Network accessline 1228
- `rfc`: `RFCValidation` - 按 RFC 规范验证邮箱([支持的 RFC](https://github.com/egulias/EmailValidator?tab=readme-ov-file#supported-rfcs))。 - Network accessline 1492
验证字段必须是有效的 [十六进制颜色值](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color)。 - Network accessline 1651
[https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types](https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) - Network accessline 1733
验证字段必须是 [numeric](https://www.php.net/manual/en/function.is-numeric.php)。 - Network accessline 2139
验证字段必须是有效 [ULID](https://github.com/ulid/spec)。 - Network accessline 2162
## 项目地址 https://github.com/top-think/think-validate - Network accessline 2163
https://github.com/top-think/think-validate - Network accessline 2219
项目为 https://github.com/Respect/Validation 的汉化版本 - Network accessline 2223
https://github.com/walkor/validation - Network accessline 2260
$.ajax({ url : 'http://127.0.0.1:8787', - Network accessline 2261
url : 'http://127.0.0.1:8787', - Network accessline 2452
更多验证规则参见 https://respect-validation.readthedocs.io/en/2.0/list-of-rules/ - Network accessline 2456
访问 https://respect-validation.readthedocs.io/en/2.0/
skills/webman/references/zh-cn/components/wechat.md
- Executable scriptline 1
Executable file - Network accessline 5
https://github.com/w7corp/easywechat - Network accessline 29
* 是否使用 Stable Access Token * 默认 false * https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html - Network accessline 30
* 默认 false * https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html * true 使用 false 不使用 - Network accessline 31
* https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html - Access to secretsline 34
[Credential-related source omitted] - Network accessline 47
/** * 接口请求相关配置,超时时间等,具体可用参数请参考: * https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php - Network accessline 48
* 接口请求相关配置,超时时间等,具体可用参数请参考: * https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php */ - Network accessline 49
* https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php - Network accessline 51
'http' => [ 'timeout' => 5.0, // 'base_uri' => 'https://api.weixin.qq.com/', // 如果你在国外想要覆盖默认的 url 的时候才使用,根据不同的模块配置不同的 uri - Network accessline 53
// 'base_uri' => 'https://api.weixin.qq.com/', // 如果你在国外想要覆盖默认的 url 的时候才使用,根据不同的模块配置不同的 uri - Network accessline 84
// 授权事件回调地址:http://easywechat.com/OfficialAccount/server - Network accessline 106
访问 https://easywechat.com/6.x/official-account/examples.html
skills/webman/references/zh-cn/config.md
- Executable scriptline 1
Executable file - Network accessline 85
return [ 'listen' => 'http://0.0.0.0:8787', // 监听端口(从1.6.0版本开始移除, 改在config/process.php中配置) - Network accessline 86
'listen' => 'http://0.0.0.0:8787', // 监听端口(从1.6.0版本开始移除, 改在config/process.php中配置) - Network accessline 126
'webman' => [ 'handler' => Http::class, // 进程处理类 'listen' => 'http://0.0.0.0:8787', // 监听地址 - Network accessline 127
'handler' => Http::class, // 进程处理类 'listen' => 'http://0.0.0.0:8787', // 监听地址 'count' => cpu_count() * 4, // 进程数量,默认cpu的4倍 - Network accessline 128
'listen' => 'http://0.0.0.0:8787', // 监听地址 - Access to secretsline 154
[Credential-related source omitted]
skills/webman/references/zh-cn/controller.md
skills/webman/references/zh-cn/coroutine/coroutine.md
- Network accessline 17
'webman' => [ 'handler' => Http::class, 'listen' => 'http://0.0.0.0:8787', - Network accessline 18
'handler' => Http::class, 'listen' => 'http://0.0.0.0:8787', 'count' => 1, - Network accessline 19
'listen' => 'http://0.0.0.0:8787', - Network accessline 33
'my-coroutine' => [ 'handler' => Http::class, 'listen' => 'http://0.0.0.0:8686', - Network accessline 34
'handler' => Http::class, 'listen' => 'http://0.0.0.0:8686', 'count' => 1, - Network accessline 35
'listen' => 'http://0.0.0.0:8686', - Network accessline 128
将进程数设置为1,当我们连续发起两个请求时 http://127.0.0.1:8787/test?name=lilei - Network accessline 129
http://127.0.0.1:8787/test?name=lilei - Network accessline 130
http://127.0.0.1:8787/test?name=hanmeimei - Network accessline 326
参考[workerman 协程文档](https://www.workerman.net/doc/workerman/coroutine/coroutine.html) - Network accessline 335
'webman' => [ 'handler' => Http::class, 'listen' => 'http://0.0.0.0:8787', - Network accessline 336
'handler' => Http::class, 'listen' => 'http://0.0.0.0:8787', 'count' => 1, - Network accessline 337
'listen' => 'http://0.0.0.0:8787', - Network accessline 351
'my-coroutine' => [ 'handler' => Http::class, 'listen' => 'http://0.0.0.0:8686', - Network accessline 352
'handler' => Http::class, 'listen' => 'http://0.0.0.0:8686', 'count' => 1, - Network accessline 353
'listen' => 'http://0.0.0.0:8686', - Network accessline 397
proxy_http_version 1.1; proxy_set_header Connection ""; proxy_pass http://task; - Network accessline 398
proxy_set_header Connection ""; proxy_pass http://task; } - Network accessline 399
proxy_pass http://task; - Network accessline 407
proxy_set_header Connection ""; if (!-f $request_filename){ proxy_pass http://webman; - Network accessline 408
if (!-f $request_filename){ proxy_pass http://webman; } - Network accessline 409
proxy_pass http://webman;
skills/webman/references/zh-cn/db/cache.md
- Executable scriptline 1
Executable file - Network accessline 3
[webman/cache](https://github.com/webman-php/cache)是基于[symfony/cache](https://github.com/symfony/cache)开发的缓存组件,兼容协程和非协程环境,支持连接池。 - Network accessline 71
> 需要安装并启用 [APCu 扩展](https://pecl.php.net/package/APCu);不建议用于频繁进行缓存写入/删除的场景,会导致明显的性能下降。 - Network accessline 129
> **提示** > Key 名受 [PSR6](https://www.php-fig.org/psr/psr-6/#definitions) 限制不允许包含`{}()/\@:`中任一字符,但这一判断截至目前(`symfony/cache` 7.2.4)可暂时通过 PHP ini 配置 `zend.assertions=-1` 跳过。 - Network accessline 130
> Key 名受 [PSR6](https://www.php-fig.org/psr/psr-6/#definitions) 限制不允许包含`{}()/\@:`中任一字符,但这一判断截至目前(`symfony/cache` 7.2.4)可暂时通过 PHP ini 配置 `zend.assertions=-1` 跳过。 - Network accessline 134
[ThinkCache](https://github.com/webman-php/think-cache)组件使用参考 [其它数据库](others.md#ThinkCache)
skills/webman/references/zh-cn/db/config.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/db/medoo.md
skills/webman/references/zh-cn/db/migration.md
skills/webman/references/zh-cn/db/model.md
- Executable scriptline 1
Executable file - Network accessline 3
webman模型 基于 [Eloquent ORM](https://laravel.com/docs/7.x/eloquent) 。每个数据库表都有一个对应的「模型」用来与该表交互。你可以通过模型查询数据表中的数据,以及在数据表中插入新记录。 - Network accessline 215
cursor 返回 `Illuminate\Support\LazyCollection` 实例。 [Lazy collections](https://laravel.com/docs/7.x/collections#lazy-collections) 允许你使用 Laravel 集合中大多数集合方法,而且每次只会加载单个模型到内存中: - Network accessline 541
## 模型观察者 使用参考[Laravel 中的模型事件与 Observer ](https://learnku.com/articles/6657/model-events-and-observer-in-laravel) - Network accessline 543
](https://learnku.com/articles/6657/model-events-and-observer-in-laravel)
skills/webman/references/zh-cn/db/mongo.md
- Executable scriptline 1
Executable file - Network accessline 3
webman默认使用 [mongodb/laravel-mongodb](https://github.com/mongodb/laravel-mongodb) 作为mongodb组件,它是从laravel项目中抽离出来的,用法与laravel相同。 - Network accessline 37
'options' => [ // here you can pass more settings to the Mongo Driver Manager // see https://www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete parameters th - Network accessline 39
// see https://www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete parameters that you can use - Network accessline 96
https://github.com/mongodb/laravel-mongodb
skills/webman/references/zh-cn/db/others.md
skills/webman/references/zh-cn/db/paginator.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/db/queries.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/db/redis.md
skills/webman/references/zh-cn/db/relationships.md
- Network accessline 3
参考 https://learnku.com/docs/laravel/8.x/eloquent-relationships/9407
skills/webman/references/zh-cn/db/thinkcache.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/db/thinkorm.md
- Executable scriptline 1
Executable file - Network accessline 3
[webman/think-orm](https://github.com/webman-php/think-orm) 是基于 [top-think/think-orm](https://github.com/top-think/think-orm) 开发的数据库组件,支持连接池,支持协程和非协程环境。 - Network accessline 17
## 文档地址 https://www.kancloud.cn/manual/think-orm - Network accessline 18
https://www.kancloud.cn/manual/think-orm
skills/webman/references/zh-cn/db/tutorial.md
skills/webman/references/zh-cn/di.md
- Network accessline 1
# 依赖自动注入 在webman里依赖自动注入是可选功能,此功能默认关闭。如果你需要依赖自动注入,推荐使用[php-di](https://php-di.org/doc/getting-started.html),以下是webman结合`php-di`的用法。 - Executable scriptline 1
Executable file - Network accessline 2
在webman里依赖自动注入是可选功能,此功能默认关闭。如果你需要依赖自动注入,推荐使用[php-di](https://php-di.org/doc/getting-started.html),以下是webman结合`php-di`的用法。 - Network accessline 373
## 更多内容 请参考[php-di手册](https://php-di.org/doc/getting-started.html) - Network accessline 374
请参考[php-di手册](https://php-di.org/doc/getting-started.html)
skills/webman/references/zh-cn/directory.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/event.md
- Executable scriptline 1
Executable file - Network accessline 3
[]() - Network accessline 4
[]() - Network accessline 5
[]() - Network accessline 6
[]() - Network accessline 7
[]() - Network accessline 13
[https://github.com/Tinywan/webman-permission](https://github.com/Tinywan/webman-permission) - Network accessline 17
- [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher)
skills/webman/references/zh-cn/exception.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/help.md
skills/webman/references/zh-cn/install.md
- Executable scriptline 1
Executable file - Network accessline 3
* PHP >= 8.1 * [Composer](https://getcomposer.org/) >= 2.0 - Network accessline 4
* [Composer](https://getcomposer.org/) >= 2.0 - Dangerous shell operationline 9
curl -sO https://www.workerman.net/install-php-and-composer && sudo bash install-php-and-composer - Network accessline 9
curl -sO https://www.workerman.net/install-php-and-composer && sudo bash install-php-and-composer - Network accessline 14
也可手动下载webman官方提供的[静态PHP](https://www.workerman.net/download),解压即可使用。 - Network accessline 68
浏览器访问 `http://ip地址:8787`
skills/webman/references/zh-cn/log.md
skills/webman/references/zh-cn/middleware.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/multiapp.md
- Executable scriptline 1
Executable file - Network accessline 19
当访问地址 `http://127.0.0.1:8787/shop/{控制器}/{方法}` 时访问`app/shop/controller`下的控制器与方法。 - Network accessline 21
当访问地址 `http://127.0.0.1:8787/api/{控制器}/{方法}` 时访问`app/api/controller`下的控制器与方法。 - Network accessline 23
当访问地址 `http://127.0.0.1:8787/admin/{控制器}/{方法}` 时访问`app/admin/controller`下的控制器与方法。 - Network accessline 43
这样当地址访问 `http://127.0.0.1:8787/{控制器}/{方法}` 时访问的是`app/controller`下的控制器与方法。当路径里以api或者admin开头时访问的是相对应目录里的控制器与方法。
skills/webman/references/zh-cn/others/autoload.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/others/benchmarks.md
- Network accessline 18
## 压测时如何开启HTTP keep-alive? 如果是用的ab程序压测需要加-k参数,例如 `ab -n100000 -c200 -k http://127.0.0.1:8787/`。 - Network accessline 19
如果是用的ab程序压测需要加-k参数,例如 `ab -n100000 -c200 -k http://127.0.0.1:8787/`。 - Network accessline 42
## 为什么我压测结果是webman性能低于go的gin框架? [techempower](https://www.techempower.com/benchmarks/#section=data-r21&hw=ph&test=db&l=zijnjz-6bj&a=2&f=1ekg-cbcw-2t4w-27wr68-pc0-iv9slc-0-1ekgw-39g-kxs00-o0zk-5jsetl-2x8doc-2)压测显示webman不管在纯文本、数据库查询、数据库更新等所有指 - Network accessline 43
[techempower](https://www.techempower.com/benchmarks/#section=data-r21&hw=ph&test=db&l=zijnjz-6bj&a=2&f=1ekg-cbcw-2t4w-27wr68-pc0-iv9slc-0-1ekgw-39g-kxs00-o0zk-5jsetl-2x8doc-2)压测显示webman不管在纯文本、数据库查询、数据库更新等所有指标都高于gin近一倍左右。 - Network accessline 98
[**第三方techempower压测数据**](https://www.techempower.com/benchmarks/#section=data-r21&l=zik073-6bj&test=db) - Network accessline 105
# 100000请求 200并发 开启keep-alive ab -n100000 -c200 -k http://127.0.0.1:8787/ - Network accessline 106
ab -n100000 -c200 -k http://127.0.0.1:8787/ - Network accessline 108
# 100000请求 200并发 未开启keep-alive ab -n100000 -c200 http://127.0.0.1:8787/ - Network accessline 109
ab -n100000 -c200 http://127.0.0.1:8787/ - Network accessline 114
# 200 并发压测10秒 开启keep-alive(默认) wrk -c 200 -d 10s http://example.com - Network accessline 115
wrk -c 200 -d 10s http://example.com
skills/webman/references/zh-cn/others/bin.md
- Executable scriptline 1
Executable file - Network accessline 48
## 单独下载静态PHP 有时候你只是不想部署PHP环境,只需要一个PHP可执行文件,点击请点击这里下载[静态php下载](https://www.workerman.net/download) - Network accessline 49
有时候你只是不想部署PHP环境,只需要一个PHP可执行文件,点击请点击这里下载[静态php下载](https://www.workerman.net/download) - Network accessline 59
https://github.com/crazywhalecc/static-php-cli - Network accessline 60
https://github.com/walkor/static-php-cli
skills/webman/references/zh-cn/others/bootstrap.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/others/custom-error-page.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/others/disable-function-check.md
skills/webman/references/zh-cn/others/lifecycle.md
- Executable scriptline 1
Executable file - Network accessline 16
## 控制器生命周期 - 每个控制器每个进程只会实例化一次,多个进程实例化多次(关闭控制器复用除外,参见[控制器生命周期](https://www.workerman.net/doc/webman/controller.html#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F)) - Network accessline 17
- 每个控制器每个进程只会实例化一次,多个进程实例化多次(关闭控制器复用除外,参见[控制器生命周期](https://www.workerman.net/doc/webman/controller.html#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F))
skills/webman/references/zh-cn/others/memory-leak.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/others/monitor.md
- Access to secretsline 25
[Credential-related source omitted]
skills/webman/references/zh-cn/others/nginx-proxy.md
skills/webman/references/zh-cn/others/phar.md
skills/webman/references/zh-cn/others/process.md
- Executable scriptline 1
Executable file - Network accessline 19
2. 根据url判断是否命中某个路由,没命中进入3、命中进入4 3. 是否关闭了默认路由,是的话返回404(结束请求),不是的话进入4 4. 找到请求对应控制器的中间件,按顺序执行中间件前置操作(洋葱模型请求阶段),执行控制器业务逻辑,执行中间件后置操作(洋葱模型响应阶段),请求结束。(参考[中间件洋葱模型](https://www.workerman.net/doc/webman/middleware.html#%E4%B8%AD%E9%97%B4%E4%BB%B6%E6% - Network accessline 21
4. 找到请求对应控制器的中间件,按顺序执行中间件前置操作(洋葱模型请求阶段),执行控制器业务逻辑,执行中间件后置操作(洋葱模型响应阶段),请求结束。(参考[中间件洋葱模型](https://www.workerman.net/doc/webman/middleware.html#%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%B4%8B%E8%91%B1%E6%A8%A1%E5%9E%8B))
skills/webman/references/zh-cn/others/scripts.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/others/security.md
- Executable scriptline 1
Executable file - Network accessline 8
## 控制器规范 `controller`目录或者子目录下只能放置控制器文件,禁止放置其它类文件,否则在未开启[控制器后缀](https://www.workerman.net/doc/webman/controller.html#%E6%8E%A7%E5%88%B6%E5%99%A8%E5%90%8E%E7%BC%80)时,类文件有可能会被url非法访问,造成不可预知的后果。 - Network accessline 9
`controller`目录或者子目录下只能放置控制器文件,禁止放置其它类文件,否则在未开启[控制器后缀](https://www.workerman.net/doc/webman/controller.html#%E6%8E%A7%E5%88%B6%E5%99%A8%E5%90%8E%E7%BC%80)时,类文件有可能会被url非法访问,造成不可预知的后果。 - Network accessline 10
例如 `app/controller/model/User.php` 实际是Model类,但是却错误的放到了`controller`目录下,在没开启[控制器后缀](https://www.workerman.net/doc/webman/controller.html#%E6%8E%A7%E5%88%B6%E5%99%A8%E5%90%8E%E7%BC%80)时,会导致用户可以通过类似`/model/user/xxx`访问`User.php`里的任意方法。 - Network accessline 11
为了彻底杜绝这种情况,强烈建议使用[控制器后缀](https://www.workerman.net/doc/webman/controller.html#%E6%8E%A7%E5%88%B6%E5%99%A8%E5%90%8E%E7%BC%80)明确标记哪些是控制器文件。 - Network accessline 23
## 防止SQL注入 为了防止SQL注入,请尽量使用ORM,如 [illuminate/database](https://www.workerman.net/doc/webman/db/tutorial.html)、[think-orm](https://www.workerman.net/doc/webman/db/thinkorm.html),使用时尽量不要自己组装SQL。 - Network accessline 24
为了防止SQL注入,请尽量使用ORM,如 [illuminate/database](https://www.workerman.net/doc/webman/db/tutorial.html)、[think-orm](https://www.workerman.net/doc/webman/db/thinkorm.html),使用时尽量不要自己组装SQL。
skills/webman/references/zh-cn/others/task.md
- Executable scriptline 1
Executable file - Network accessline 11
#### 缺点 无法直接返回结果给客户端。如需推送结果需要配合其它服务,例如使用 [webman/push](https://www.workerman.net/plugin/2) 推送处理结果。 - Network accessline 12
无法直接返回结果给客户端。如需推送结果需要配合其它服务,例如使用 [webman/push](https://www.workerman.net/plugin/2) 推送处理结果。 - Network accessline 30
'task' => [ 'handler' => \Webman\App::class, 'listen' => 'http://0.0.0.0:8686', - Network accessline 31
'handler' => \Webman\App::class, 'listen' => 'http://0.0.0.0:8686', 'count' => 8, // 进程数 - Network accessline 32
'listen' => 'http://0.0.0.0:8686', - Network accessline 47
这样慢接口可以走 `http://127.0.0.1:8686/` 这组进程,不影响其它进程的业务处理。 - Network accessline 72
proxy_http_version 1.1; proxy_set_header Connection ""; proxy_pass http://task; - Network accessline 73
proxy_set_header Connection ""; proxy_pass http://task; } - Network accessline 74
proxy_pass http://task; - Network accessline 82
proxy_set_header Connection ""; if (!-f $request_filename){ proxy_pass http://webman; - Network accessline 83
if (!-f $request_filename){ proxy_pass http://webman; } - Network accessline 84
proxy_pass http://webman; - Network accessline 116
$connection = $request->connection; $http = new \Workerman\Http\Client(); $http->get('https://example.com/', function ($response) use ($connection) { - Network accessline 117
$http = new \Workerman\Http\Client(); $http->get('https://example.com/', function ($response) use ($connection) { $connection->send(new Chunk($response->getBody())); - Network accessline 118
$http->get('https://example.com/', function ($response) use ($connection) { - Network accessline 130
> **提示** > 本例中使用了 `workerman/http-client` 客户端异步获取http结果并返回数据,也可以使用其它异步客户端例如 [AsyncTcpConnection](https://www.workerman.net/doc/workerman/async-tcp-connection/construct.html) 。 - Network accessline 131
> 本例中使用了 `workerman/http-client` 客户端异步获取http结果并返回数据,也可以使用其它异步客户端例如 [AsyncTcpConnection](https://www.workerman.net/doc/workerman/async-tcp-connection/construct.html) 。
skills/webman/references/zh-cn/others/upgrade.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/plugin.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/plugin/app.md
- Executable scriptline 1
Executable file - Network accessline 45
## url访问 应用插件url地址路径都以`/app`开头,例如`plugin\cms\app\controller\UserController`url地址是 `http://127.0.0.1:8787/app/cms/user`。 - Network accessline 46
应用插件url地址路径都以`/app`开头,例如`plugin\cms\app\controller\UserController`url地址是 `http://127.0.0.1:8787/app/cms/user`。 - Network accessline 48
## 静态文件 静态文件放置于`plugin/{插件}/public`下,例如访问`http://127.0.0.1:8787/app/cms/avatar.png`实际上是获取`plugin/cms/public/avatar.png`文件。 - Network accessline 49
静态文件放置于`plugin/{插件}/public`下,例如访问`http://127.0.0.1:8787/app/cms/avatar.png`实际上是获取`plugin/cms/public/avatar.png`文件。
skills/webman/references/zh-cn/plugin/base.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/plugin/console.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/plugin/create.md
- Executable scriptline 1
Executable file - Network accessline 50
### 提交插件 * 假设你已经有 [github](https://github.com) 和 [packagist](https://packagist.org) 账号 - Network accessline 51
* 假设你已经有 [github](https://github.com) 和 [packagist](https://packagist.org) 账号 - Network accessline 52
* 在[github](https://github.com)上创建一个admin项目并将代码上传,项目地址假设是 `https://github.com/你的用户名/admin` - Network accessline 53
* 进入地址`https://github.com/你的用户名/admin/releases/new`发布一个release如 `v1.0.0` - Network accessline 54
* 进入[packagist](https://packagist.org)点击导航里`Submit`,将你的github项目地址`https://github.com/你的用户名/admin`提交上去这样就完成了一个插件的发布 - Network accessline 59
后续当你的插件项目代码有更新时,需要将代码同步到github,并再次进入地址`https://github.com/你的用户名/admin/releases/new`重新发布一个release,然后到 `https://packagist.org/packages/foo/admin` 页面点击 `Update` 按钮更新版本
skills/webman/references/zh-cn/plugin/market.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/plugin/push.md
- Executable scriptline 1
Executable file - Network accessline 3
`webman/push` 是一个免费的推送服务端插件,客户端基于订阅模式,兼容 [pusher](https://pusher.com),拥有众多客户端如JS、安卓(java)、IOS(swift)、IOS(Obj-C)、uniapp、.NET、 Unity、Flutter、AngularJS等。后端推送SDK支持PHP、Node、Ruby、Asp、Java、Python、Go、Swift等。客户端自带心跳和断线自动重连,使用起来非常简单稳定。适用于消息推送、聊天等诸多即时 - Network accessline 5
插件中自带一个网页js客户端push.js以及uniapp客户端`uniapp-push.js`,其它语言客户端在 https://pusher.com/docs/channels/channels_libraries/libraries/ 下载 - Network accessline 61
$api = new Api( // webman下可以直接使用config获取配置,非webman环境需要手动写入相应配置 'http://127.0.0.1:3232', - Network accessline 62
// webman下可以直接使用config获取配置,非webman环境需要手动写入相应配置 'http://127.0.0.1:3232', config('plugin.webman.push.app.app_key'), - Network accessline 63
'http://127.0.0.1:3232', - Network accessline 139
location /app/<app_key> { proxy_pass http://127.0.0.1:3131; - Network accessline 140
{ proxy_pass http://127.0.0.1:3131; proxy_http_version 1.1; - Network accessline 141
proxy_pass http://127.0.0.1:3131; - Network accessline 219
## 其他客户端地址 `webman/push` 兼容pusher,其他语言(Java Swift .NET Objective-C Unity Flutter Android IOS AngularJS等)客户端地址下载地址: https://pusher.com/docs/channels/channels_libraries/libraries/ - Network accessline 221
https://pusher.com/docs/channels/channels_libraries/libraries/
skills/webman/references/zh-cn/process.md
- Executable scriptline 1
Executable file - Network accessline 34
'my-http' => [ 'handler' => app\Server::class, 'listen' => 'http://0.0.0.0:8686', - Network accessline 35
'handler' => app\Server::class, 'listen' => 'http://0.0.0.0:8686', 'count' => 8, // 进程数 - Network accessline 36
'listen' => 'http://0.0.0.0:8686',
skills/webman/references/zh-cn/queue/redis.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/queue/stomp.md
skills/webman/references/zh-cn/request.md
- Executable scriptline 1
Executable file - Network accessline 193
<form method="post" action="http://127.0.0.1:8787/upload/files" enctype="multipart/form-data"> - Network accessline 207
他是一个`webman\Http\UploadFile`实例的数组。`webman\Http\UploadFile`类继承了 PHP 内置的 [`SplFileInfo`](https://www.php.net/manual/zh/class.splfileinfo.php) 类,并且提供了一些实用的方法。 - Network accessline 236
- 文件被上传后会被命名为一个临时文件,类似 `/tmp/workerman.upload.SRliMu` - 上传文件大小受到[defaultMaxPackageSize](http://doc.workerman.net/tcp-connection/default-max-package-size.html)限制,默认10M,可在`config/server.php`文件中修改`max_package_size`更改默认值。 - Network accessline 237
- 上传文件大小受到[defaultMaxPackageSize](http://doc.workerman.net/tcp-connection/default-max-package-size.html)限制,默认10M,可在`config/server.php`文件中修改`max_package_size`更改默认值。
skills/webman/references/zh-cn/require.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/response.md
- Executable scriptline 1
Executable file - Network accessline 421
{ $connection = $request->connection; // https://api.openai.com 国内访问不到的话可以用地址 https://api.openai-proxy.com 替代 - Network accessline 422
[Credential-related source omitted] - Network accessline 423
// https://api.openai.com 国内访问不到的话可以用地址 https://api.openai-proxy.com 替代 - Network accessline 424
[Credential-related source omitted]
skills/webman/references/zh-cn/route.md
- Network accessline 1
# 路由 ## 默认路由规则 webman默认路由规则是 `http://127.0.0.1:8787/{控制器}/{动作}`。 - Executable scriptline 1
Executable file - Network accessline 3
webman默认路由规则是 `http://127.0.0.1:8787/{控制器}/{动作}`。 - Network accessline 7
例如访问: - `http://127.0.0.1:8787` 将默认访问`app\controller\IndexController`类的`index`方法 - Network accessline 8
- `http://127.0.0.1:8787` 将默认访问`app\controller\IndexController`类的`index`方法 - Network accessline 9
- `http://127.0.0.1:8787/foo` 将默认访问`app\controller\FooController`类的`index`方法 - Network accessline 10
- `http://127.0.0.1:8787/foo/test` 将默认访问`app\controller\FooController`类的`test`方法 - Network accessline 11
- `http://127.0.0.1:8787/admin/foo/test` 将默认访问`app\admin\controller\FooController`类的`test`方法 (参考[多应用](multiapp.md)) - Network accessline 49
当访问地址为 `http://127.0.0.1:8787/test` 时,将返回`test`字符串。 - Network accessline 73
当访问地址为 `http://127.0.0.1:8787/testclass` 时,将返回`app\controller\IndexController`类的`test`方法的返回值。
skills/webman/references/zh-cn/session.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/static.md
- Network accessline 1
# webman处理静态文件 webman支持静态文件访问,静态文件都放置于`public`目录下,例如访问 `http://127.0.0.8787/upload/avatar.png`实际上是访问`{主项目目录}/public/upload/avatar.png`。 - Executable scriptline 1
Executable file - Network accessline 2
webman支持静态文件访问,静态文件都放置于`public`目录下,例如访问 `http://127.0.0.8787/upload/avatar.png`实际上是访问`{主项目目录}/public/upload/avatar.png`。
skills/webman/references/zh-cn/thanks.md
- Executable scriptline 1
Executable file - Network accessline 3
<tr> <td align="center"> <a href="https://github.com/Tinywan"> - Network accessline 4
<td align="center"> <a href="https://github.com/Tinywan"> <img src="https://avatars.githubusercontent.com/u/14959876?v=4" width="100px;"/><h5>Tinywan</h5> - Network accessline 5
<a href="https://github.com/Tinywan"> - Network accessline 6
<img src="https://avatars.githubusercontent.com/u/14959876?v=4" width="100px;"/><h5>Tinywan</h5> - Network accessline 8
</td> <td align="center"> <a href="https://github.com/yasarluo"> - Network accessline 9
<td align="center"> <a href="https://github.com/yasarluo"> <img src="https://avatars.githubusercontent.com/u/60771720?v=4" width="100px;"/><h5>yasarluo</h5> - Network accessline 10
<a href="https://github.com/yasarluo"> - Network accessline 11
<img src="https://avatars.githubusercontent.com/u/60771720?v=4" width="100px;"/><h5>yasarluo</h5> - Network accessline 13
</td> <td align="center"> <a href="https://github.com/latypoff"> - Network accessline 14
<td align="center"> <a href="https://github.com/latypoff"> <img src="https://avatars.githubusercontent.com/u/11870079?v=4" width="100px;"/><h5>latypoff</h5> - Network accessline 15
<a href="https://github.com/latypoff"> - Network accessline 16
<img src="https://avatars.githubusercontent.com/u/11870079?v=4" width="100px;"/><h5>latypoff</h5> - Network accessline 18
</td> <td align="center"> <a href="https://github.com/fuzqing"> - Network accessline 19
<td align="center"> <a href="https://github.com/fuzqing"> <img src="https://avatars.githubusercontent.com/u/15156836?v=4" width="100px;"/><h5>fuzqing</h5> - Network accessline 20
<a href="https://github.com/fuzqing"> - Network accessline 21
<img src="https://avatars.githubusercontent.com/u/15156836?v=4" width="100px;"/><h5>fuzqing</h5> - Network accessline 23
</td> <td align="center"> <a href="https://github.com/lengqiuqiuqiu"> - Network accessline 24
<td align="center"> <a href="https://github.com/lengqiuqiuqiu"> <img src="https://avatars.githubusercontent.com/u/149125167?v=4" width="100px;"/><h5>lengqiuqiuqiu</h5> - Network accessline 25
<a href="https://github.com/lengqiuqiuqiu"> - Network accessline 26
<img src="https://avatars.githubusercontent.com/u/149125167?v=4" width="100px;"/><h5>lengqiuqiuqiu</h5> - Network accessline 28
</td> <td align="center"> <a href="https://github.com/zjkal"> - Network accessline 29
<td align="center"> <a href="https://github.com/zjkal"> <img src="https://avatars.githubusercontent.com/u/15082976?v=4" width="100px;"/><h5>zjkal</h5> - Network accessline 30
<a href="https://github.com/zjkal"> - Network accessline 31
<img src="https://avatars.githubusercontent.com/u/15082976?v=4" width="100px;"/><h5>zjkal</h5> - Network accessline 33
</td> <td align="center"> <a href="https://github.com/limingxinleo"> - Network accessline 34
<td align="center"> <a href="https://github.com/limingxinleo"> <img src="https://avatars.githubusercontent.com/u/16648551?v=4" width="100px;"/><h5>limingxinleo</h5> - Network accessline 35
<a href="https://github.com/limingxinleo"> - Network accessline 36
<img src="https://avatars.githubusercontent.com/u/16648551?v=4" width="100px;"/><h5>limingxinleo</h5> - Network accessline 38
</td> <td align="center"> <a href="https://github.com/luoyue712"> - Network accessline 39
<td align="center"> <a href="https://github.com/luoyue712"> <img src="https://avatars.githubusercontent.com/u/102944161?v=4" width="100px;"/><h5>luoyue712</h5> - Network accessline 40
<a href="https://github.com/luoyue712"> - Network accessline 41
<img src="https://avatars.githubusercontent.com/u/102944161?v=4" width="100px;"/><h5>luoyue712</h5> - Network accessline 45
<tr> <td align="center"> <a href="https://github.com/ooing"> - Network accessline 46
<td align="center"> <a href="https://github.com/ooing"> <img src="https://avatars.githubusercontent.com/u/5188151?v=4" width="100px;"/><h5>ooing</h5> - Network accessline 47
<a href="https://github.com/ooing"> - Network accessline 48
<img src="https://avatars.githubusercontent.com/u/5188151?v=4" width="100px;"/><h5>ooing</h5> - Network accessline 50
</td> <td align="center"> <a href="https://github.com/tianyiw2013"> - Network accessline 51
<td align="center"> <a href="https://github.com/tianyiw2013"> <img src="https://avatars.githubusercontent.com/u/4644588?v=4" width="100px;"/><h5>tianyiw2013</h5> - Network accessline 52
<a href="https://github.com/tianyiw2013"> - Network accessline 53
<img src="https://avatars.githubusercontent.com/u/4644588?v=4" width="100px;"/><h5>tianyiw2013</h5> - Network accessline 55
</td> <td align="center"> <a href="https://github.com/Maoxp"> - Network accessline 56
<td align="center"> <a href="https://github.com/Maoxp"> <img src="https://avatars.githubusercontent.com/u/37761489?v=4" width="100px;"/><h5>Maoxp</h5> - Network accessline 57
<a href="https://github.com/Maoxp"> - Network accessline 58
<img src="https://avatars.githubusercontent.com/u/37761489?v=4" width="100px;"/><h5>Maoxp</h5> - Network accessline 60
</td> <td align="center"> <a href="https://github.com/codinglist"> - Network accessline 61
<td align="center"> <a href="https://github.com/codinglist"> <img src="https://avatars.githubusercontent.com/u/49902313?v=4" width="100px;"/><h5>codinglist</h5> - Network accessline 62
<a href="https://github.com/codinglist"> - Network accessline 63
<img src="https://avatars.githubusercontent.com/u/49902313?v=4" width="100px;"/><h5>codinglist</h5> - Network accessline 65
</td> <td align="center"> <a href="https://github.com/detain"> - Network accessline 66
<td align="center"> <a href="https://github.com/detain"> <img src="https://avatars.githubusercontent.com/u/1364504?v=4" width="100px;"/><h5>detain</h5> - Network accessline 67
<a href="https://github.com/detain"> - Network accessline 68
<img src="https://avatars.githubusercontent.com/u/1364504?v=4" width="100px;"/><h5>detain</h5> - Network accessline 70
</td> <td align="center"> <a href="https://github.com/fplun"> - Network accessline 71
<td align="center"> <a href="https://github.com/fplun"> <img src="https://avatars.githubusercontent.com/u/38807395?v=4" width="100px;"/><h5>fplun</h5> - Network accessline 72
<a href="https://github.com/fplun"> - Network accessline 73
<img src="https://avatars.githubusercontent.com/u/38807395?v=4" width="100px;"/><h5>fplun</h5> - Network accessline 75
</td> <td align="center"> <a href="https://github.com/hkui"> - Network accessline 76
<td align="center"> <a href="https://github.com/hkui"> <img src="https://avatars.githubusercontent.com/u/4144760?v=4" width="100px;"/><h5>hkui</h5> - Network accessline 77
<a href="https://github.com/hkui"> - Network accessline 78
<img src="https://avatars.githubusercontent.com/u/4144760?v=4" width="100px;"/><h5>hkui</h5> - Network accessline 80
</td> <td align="center"> <a href="https://github.com/ichynul"> - Network accessline 81
<td align="center"> <a href="https://github.com/ichynul"> <img src="https://avatars.githubusercontent.com/u/10061650?v=4" width="100px;"/><h5>ichynul</h5> - Network accessline 82
<a href="https://github.com/ichynul"> - Network accessline 83
<img src="https://avatars.githubusercontent.com/u/10061650?v=4" width="100px;"/><h5>ichynul</h5> - Network accessline 87
<tr> <td align="center"> <a href="https://github.com/jetlong"> - Network accessline 88
<td align="center"> <a href="https://github.com/jetlong"> <img src="https://avatars.githubusercontent.com/u/6326231?v=4" width="100px;"/><h5>jetlong</h5> - Network accessline 89
<a href="https://github.com/jetlong"> - Network accessline 90
<img src="https://avatars.githubusercontent.com/u/6326231?v=4" width="100px;"/><h5>jetlong</h5> - Network accessline 92
</td> <td align="center"> <a href="https://github.com/krissss"> - Network accessline 93
<td align="center"> <a href="https://github.com/krissss"> <img src="https://avatars.githubusercontent.com/u/10680903?v=4" width="100px;"/><h5>krissss</h5> - Network accessline 94
<a href="https://github.com/krissss"> - Network accessline 95
<img src="https://avatars.githubusercontent.com/u/10680903?v=4" width="100px;"/><h5>krissss</h5> - Network accessline 97
</td> <td align="center"> <a href="https://github.com/leekung"> - Network accessline 98
<td align="center"> <a href="https://github.com/leekung"> <img src="https://avatars.githubusercontent.com/u/3615383?v=4" width="100px;"/><h5>leekung</h5> - Network accessline 99
<a href="https://github.com/leekung"> - Network accessline 100
<img src="https://avatars.githubusercontent.com/u/3615383?v=4" width="100px;"/><h5>leekung</h5> - Network accessline 102
</td> <td align="center"> <a href="https://github.com/mouyong"> - Network accessline 103
<td align="center"> <a href="https://github.com/mouyong"> <img src="https://avatars.githubusercontent.com/u/10336437?v=4" width="100px;"/><h5>mouyong</h5> - Network accessline 104
<a href="https://github.com/mouyong"> - Network accessline 105
<img src="https://avatars.githubusercontent.com/u/10336437?v=4" width="100px;"/><h5>mouyong</h5> - Network accessline 107
</td> <td align="center"> <a href="https://github.com/mrtwenty"> - Network accessline 108
<td align="center"> <a href="https://github.com/mrtwenty"> <img src="https://avatars.githubusercontent.com/u/4883839?v=4" width="100px;"/><h5>mrtwenty</h5> - Network accessline 109
<a href="https://github.com/mrtwenty"> - Network accessline 110
<img src="https://avatars.githubusercontent.com/u/4883839?v=4" width="100px;"/><h5>mrtwenty</h5> - Network accessline 112
</td> <td align="center"> <a href="https://github.com/rmbrun"> - Network accessline 113
<td align="center"> <a href="https://github.com/rmbrun"> <img src="https://avatars.githubusercontent.com/u/151801295?v=4" width="100px;"/><h5>rmbrun</h5> - Network accessline 114
<a href="https://github.com/rmbrun"> - Network accessline 115
<img src="https://avatars.githubusercontent.com/u/151801295?v=4" width="100px;"/><h5>rmbrun</h5> - Network accessline 117
</td> <td align="center"> <a href="https://github.com/sunsgneayo"> - Network accessline 118
<td align="center"> <a href="https://github.com/sunsgneayo"> <img src="https://avatars.githubusercontent.com/u/51745500?v=4" width="100px;"/><h5>sunsgneayo</h5> - Network accessline 119
<a href="https://github.com/sunsgneayo"> - Network accessline 120
<img src="https://avatars.githubusercontent.com/u/51745500?v=4" width="100px;"/><h5>sunsgneayo</h5> - Network accessline 122
</td> <td align="center"> <a href="https://github.com/teg1c"> - Network accessline 123
<td align="center"> <a href="https://github.com/teg1c"> <img src="https://avatars.githubusercontent.com/u/27796058?v=4" width="100px;"/><h5>teg1c</h5> - Network accessline 124
<a href="https://github.com/teg1c"> - Network accessline 125
<img src="https://avatars.githubusercontent.com/u/27796058?v=4" width="100px;"/><h5>teg1c</h5> - Network accessline 129
<tr> <td align="center"> <a href="https://github.com/uax"> - Network accessline 130
<td align="center"> <a href="https://github.com/uax"> <img src="https://avatars.githubusercontent.com/u/10324413?v=4" width="100px;"/><h5>uax</h5> - Network accessline 131
<a href="https://github.com/uax"> - Network accessline 132
<img src="https://avatars.githubusercontent.com/u/10324413?v=4" width="100px;"/><h5>uax</h5> - Network accessline 134
</td> <td align="center"> <a href="https://github.com/Chance-fyi"> - Network accessline 135
<td align="center"> <a href="https://github.com/Chance-fyi"> <img src="https://avatars.githubusercontent.com/u/37658940?v=4" width="100px;"/><h5>Chance-fyi</h5> - Network accessline 136
<a href="https://github.com/Chance-fyi"> - Network accessline 137
<img src="https://avatars.githubusercontent.com/u/37658940?v=4" width="100px;"/><h5>Chance-fyi</h5> - Network accessline 139
</td> <td align="center"> <a href="https://github.com/ChuckWe"> - Network accessline 140
<td align="center"> <a href="https://github.com/ChuckWe"> <img src="https://avatars.githubusercontent.com/u/32729062?v=4" width="100px;"/><h5>ChuckWe</h5> - Network accessline 141
<a href="https://github.com/ChuckWe"> - Network accessline 142
<img src="https://avatars.githubusercontent.com/u/32729062?v=4" width="100px;"/><h5>ChuckWe</h5> - Network accessline 144
</td> <td align="center"> <a href="https://github.com/JenkingWang"> - Network accessline 145
<td align="center"> <a href="https://github.com/JenkingWang"> <img src="https://avatars.githubusercontent.com/u/86818420?v=4" width="100px;"/><h5>JenkingWang</h5> - Network accessline 146
<a href="https://github.com/JenkingWang"> - Network accessline 147
<img src="https://avatars.githubusercontent.com/u/86818420?v=4" width="100px;"/><h5>JenkingWang</h5> - Network accessline 149
</td> <td align="center"> <a href="https://github.com/abandon1a2b"> - Network accessline 150
<td align="center"> <a href="https://github.com/abandon1a2b"> <img src="https://avatars.githubusercontent.com/u/28970107?v=4" width="100px;"/><h5>abandon1a2b</h5> - Network accessline 151
<a href="https://github.com/abandon1a2b"> - Network accessline 152
<img src="https://avatars.githubusercontent.com/u/28970107?v=4" width="100px;"/><h5>abandon1a2b</h5> - Network accessline 154
</td> <td align="center"> <a href="https://github.com/bangbangda"> - Network accessline 155
<td align="center"> <a href="https://github.com/bangbangda"> <img src="https://avatars.githubusercontent.com/u/13864407?v=4" width="100px;"/><h5>bangbangda</h5> - Network accessline 156
<a href="https://github.com/bangbangda"> - Network accessline 157
<img src="https://avatars.githubusercontent.com/u/13864407?v=4" width="100px;"/><h5>bangbangda</h5> - Network accessline 159
</td> <td align="center"> <a href="https://github.com/chaz6chez"> - Network accessline 160
<td align="center"> <a href="https://github.com/chaz6chez"> <img src="https://avatars.githubusercontent.com/u/22535862?v=4" width="100px;"/><h5>chaz6chez</h5> - Network accessline 161
<a href="https://github.com/chaz6chez"> - Network accessline 162
<img src="https://avatars.githubusercontent.com/u/22535862?v=4" width="100px;"/><h5>chaz6chez</h5> - Network accessline 164
</td> <td align="center"> <a href="https://github.com/daweism"> - Network accessline 165
<td align="center"> <a href="https://github.com/daweism"> <img src="https://avatars.githubusercontent.com/u/15864429?v=4" width="100px;"/><h5>daweism</h5> - Network accessline 166
<a href="https://github.com/daweism"> - Network accessline 167
<img src="https://avatars.githubusercontent.com/u/15864429?v=4" width="100px;"/><h5>daweism</h5> - Network accessline 171
<tr> <td align="center"> <a href="https://github.com/dlsimple"> - Network accessline 172
<td align="center"> <a href="https://github.com/dlsimple"> <img src="https://avatars.githubusercontent.com/u/931459?v=4" width="100px;"/><h5>dlsimple</h5> - Network accessline 173
<a href="https://github.com/dlsimple"> - Network accessline 174
<img src="https://avatars.githubusercontent.com/u/931459?v=4" width="100px;"/><h5>dlsimple</h5> - Network accessline 176
</td> <td align="center"> <a href="https://github.com/edenleung"> - Network accessline 177
<td align="center"> <a href="https://github.com/edenleung"> <img src="https://avatars.githubusercontent.com/u/31346973?v=4" width="100px;"/><h5>edenleung</h5> - Network accessline 178
<a href="https://github.com/edenleung"> - Network accessline 179
<img src="https://avatars.githubusercontent.com/u/31346973?v=4" width="100px;"/><h5>edenleung</h5> - Network accessline 181
</td> <td align="center"> <a href="https://github.com/fengkuangdewenzi"> - Network accessline 182
<td align="center"> <a href="https://github.com/fengkuangdewenzi"> <img src="https://avatars.githubusercontent.com/u/18565373?v=4" width="100px;"/><h5>fengkuangdewenzi</h5> - Network accessline 183
<a href="https://github.com/fengkuangdewenzi"> - Network accessline 184
<img src="https://avatars.githubusercontent.com/u/18565373?v=4" width="100px;"/><h5>fengkuangdewenzi</h5> - Network accessline 186
</td> <td align="center"> <a href="https://github.com/guanhui07"> - Network accessline 187
<td align="center"> <a href="https://github.com/guanhui07"> <img src="https://avatars.githubusercontent.com/u/5820457?v=4" width="100px;"/><h5>guanhui07</h5> - Network accessline 188
<a href="https://github.com/guanhui07"> - Network accessline 189
<img src="https://avatars.githubusercontent.com/u/5820457?v=4" width="100px;"/><h5>guanhui07</h5> - Network accessline 191
</td> <td align="center"> <a href="https://github.com/hideplan"> - Network accessline 192
<td align="center"> <a href="https://github.com/hideplan"> <img src="https://avatars.githubusercontent.com/u/163526983?v=4" width="100px;"/><h5>hideplan</h5> - Network accessline 193
<a href="https://github.com/hideplan"> - Network accessline 194
<img src="https://avatars.githubusercontent.com/u/163526983?v=4" width="100px;"/><h5>hideplan</h5> - Network accessline 196
</td> <td align="center"> <a href="https://github.com/hiders-cn"> - Network accessline 197
<td align="center"> <a href="https://github.com/hiders-cn"> <img src="https://avatars.githubusercontent.com/u/37099678?v=4" width="100px;"/><h5>hiders-cn</h5> - Network accessline 198
<a href="https://github.com/hiders-cn"> - Network accessline 199
<img src="https://avatars.githubusercontent.com/u/37099678?v=4" width="100px;"/><h5>hiders-cn</h5> - Network accessline 201
</td> <td align="center"> <a href="https://github.com/keanu-jinu"> - Network accessline 202
<td align="center"> <a href="https://github.com/keanu-jinu"> <img src="https://avatars.githubusercontent.com/u/183342407?v=4" width="100px;"/><h5>keanu-jinu</h5> - Network accessline 203
<a href="https://github.com/keanu-jinu"> - Network accessline 204
<img src="https://avatars.githubusercontent.com/u/183342407?v=4" width="100px;"/><h5>keanu-jinu</h5> - Network accessline 206
</td> <td align="center"> <a href="https://github.com/lepig"> - Network accessline 207
<td align="center"> <a href="https://github.com/lepig"> <img src="https://avatars.githubusercontent.com/u/5689279?v=4" width="100px;"/><h5>lepig</h5> - Network accessline 208
<a href="https://github.com/lepig"> - Network accessline 209
<img src="https://avatars.githubusercontent.com/u/5689279?v=4" width="100px;"/><h5>lepig</h5> - Network accessline 213
<tr> <td align="center"> <a href="https://github.com/oladoyinbov"> - Network accessline 214
<td align="center"> <a href="https://github.com/oladoyinbov"> <img src="https://avatars.githubusercontent.com/u/73993087?v=4" width="100px;"/><h5>oladoyinbov</h5> - Network accessline 215
<a href="https://github.com/oladoyinbov"> - Network accessline 216
<img src="https://avatars.githubusercontent.com/u/73993087?v=4" width="100px;"/><h5>oladoyinbov</h5> - Network accessline 218
</td> <td align="center"> <a href="https://github.com/qiqizjl"> - Network accessline 219
<td align="center"> <a href="https://github.com/qiqizjl"> <img src="https://avatars.githubusercontent.com/u/7540584?v=4" width="100px;"/><h5>qiqizjl</h5> - Network accessline 220
<a href="https://github.com/qiqizjl"> - Network accessline 221
<img src="https://avatars.githubusercontent.com/u/7540584?v=4" width="100px;"/><h5>qiqizjl</h5> - Network accessline 223
</td> <td align="center"> <a href="https://github.com/tingfeng-key"> - Network accessline 224
<td align="center"> <a href="https://github.com/tingfeng-key"> <img src="https://avatars.githubusercontent.com/u/13976521?v=4" width="100px;"/><h5>tingfeng-key</h5> - Network accessline 225
<a href="https://github.com/tingfeng-key"> - Network accessline 226
<img src="https://avatars.githubusercontent.com/u/13976521?v=4" width="100px;"/><h5>tingfeng-key</h5> - Network accessline 228
</td> <td align="center"> <a href="https://github.com/try-to"> - Network accessline 229
<td align="center"> <a href="https://github.com/try-to"> <img src="https://avatars.githubusercontent.com/u/28919584?v=4" width="100px;"/><h5>try-to</h5> - Network accessline 230
<a href="https://github.com/try-to"> - Network accessline 231
<img src="https://avatars.githubusercontent.com/u/28919584?v=4" width="100px;"/><h5>try-to</h5> - Network accessline 233
</td> <td align="center"> <a href="https://github.com/wansxlysys"> - Network accessline 234
<td align="center"> <a href="https://github.com/wansxlysys"> <img src="https://avatars.githubusercontent.com/u/38864787?v=4" width="100px;"/><h5>wansxlysys</h5> - Network accessline 235
<a href="https://github.com/wansxlysys"> - Network accessline 236
<img src="https://avatars.githubusercontent.com/u/38864787?v=4" width="100px;"/><h5>wansxlysys</h5> - Network accessline 238
</td> <td align="center"> <a href="https://github.com/willvar"> - Network accessline 239
<td align="center"> <a href="https://github.com/willvar"> <img src="https://avatars.githubusercontent.com/u/60428823?v=4" width="100px;"/><h5>willvar</h5> - Network accessline 240
<a href="https://github.com/willvar"> - Network accessline 241
<img src="https://avatars.githubusercontent.com/u/60428823?v=4" width="100px;"/><h5>willvar</h5> - Network accessline 243
</td> <td align="center"> <a href="https://github.com/woodongwong"> - Network accessline 244
<td align="center"> <a href="https://github.com/woodongwong"> <img src="https://avatars.githubusercontent.com/u/9292647?v=4" width="100px;"/><h5>woodongwong</h5> - Network accessline 245
<a href="https://github.com/woodongwong"> - Network accessline 246
<img src="https://avatars.githubusercontent.com/u/9292647?v=4" width="100px;"/><h5>woodongwong</h5> - Network accessline 248
</td> <td align="center"> <a href="https://github.com/zzbfun"> - Network accessline 249
<td align="center"> <a href="https://github.com/zzbfun"> <img src="https://avatars.githubusercontent.com/u/55395892?v=4" width="100px;"/><h5>zzbfun</h5> - Network accessline 250
<a href="https://github.com/zzbfun"> - Network accessline 251
<img src="https://avatars.githubusercontent.com/u/55395892?v=4" width="100px;"/><h5>zzbfun</h5>
skills/webman/references/zh-cn/tutorial.md
skills/webman/references/zh-cn/upgrade/1-4.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/upgrade/1-5.md
- Executable scriptline 1
Executable file
skills/webman/references/zh-cn/upgrade/1-6.md
- Network accessline 62
更多参考[控制器参数绑定](https://www.workerman.net/doc/webman/controller.html#%E6%8E%A7%E5%88%B6%E5%99%A8%E5%8F%82%E6%95%B0%E7%BB%91%E5%AE%9A) - Network accessline 109
[更多参考文档](https://www.workerman.net/doc/webman/route.html#%E7%A6%81%E7%94%A8%E9%BB%98%E8%AE%A4%E8%B7%AF%E7%94%B1) - Network accessline 121
[更多参考文档](https://www.workerman.net/doc/webman/request.html#%E9%87%8D%E5%86%99%E5%8F%82%E6%95%B0)
skills/webman/references/zh-cn/view.md
- Network accessline 1
# 视图 webman默认使用的是php原生语法作为模版,在打开`opcache`后具有最好的性能。除了php原生模版,webman还提供了[Twig](https://twig.symfony.com/doc/3.x/)、 [Blade](https://learnku.com/docs/laravel/8.x/blade/9377)、 [think-template](https://www.kancloud.cn/manual/think-template/conten - Executable scriptline 1
Executable file - Network accessline 2
webman默认使用的是php原生语法作为模版,在打开`opcache`后具有最好的性能。除了php原生模版,webman还提供了[Twig](https://twig.symfony.com/doc/3.x/)、 [Blade](https://learnku.com/docs/laravel/8.x/blade/9377)、 [think-template](https://www.kancloud.cn/manual/think-template/content) 模版 - Network accessline 158
更多文档参考 [Twig](https://twig.symfony.com/doc/3.x/) - Network accessline 205
更多文档参考 [Blade](https://learnku.com/docs/laravel/8.x/blade/9377) - Network accessline 251
更多文档参考 [think-template](https://www.kancloud.cn/manual/think-template/content) - Network accessline 451
详情参考 [think-template标签扩展](https://www.kancloud.cn/manual/think-template/1286424)
skills/webman/references/zh-cn/what-can-do.md
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 2 facts
- Contacts loop.coze.cn, which SKILL.md, the README and the plugin manifest do not mentioneino/references/docs_examples/adk/common/trace/coze_loop.go:39High confidence
- Contacts loop.coze.cn, which SKILL.md, the README and the plugin manifest do not mentioneino/references/docs_examples/adk/human-in-the-loop/1_approval/main.go:42High confidence
Signal confidence: 498 facts
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueeino/SKILL.md:60Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueeino/SKILL.md:135Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueeino/SKILL.md:187Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueeino/SKILL.md:253Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueeino/SKILL.md:309Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueeino/SKILL.md:367Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueeino/SKILL.md:435Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueeino/SKILL.md:480Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:672Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:673Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:674Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:675Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:739Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:740Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:741Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:769Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:770Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:771Low confidence
- Network access in prose of the SKILL.mdeino/SKILL.md:772Low confidence
- Network access in prose of documentationeino/references/docs_examples/CODE_OF_CONDUCT.md:117Low confidence
- Network access in prose of documentationeino/references/docs_examples/CODE_OF_CONDUCT.md:119Low confidence
- Network access in prose of documentationeino/references/docs_examples/CODE_OF_CONDUCT.md:121Low confidence
- Network access in prose of documentationeino/references/docs_examples/CODE_OF_CONDUCT.md:122Low confidence
- Network access in prose of documentationeino/references/docs_examples/CODE_OF_CONDUCT.md:124Low confidence
- Network access in prose of documentationeino/references/docs_examples/CODE_OF_CONDUCT.md:126Low confidence
- Network access in prose of documentationeino/references/docs_examples/CODE_OF_CONDUCT.md:127Low confidence
- Network access in prose of documentationeino/references/docs_examples/CODE_OF_CONDUCT.md:128Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:3Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:4Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:6Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:7Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:9Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:11Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:14Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:16Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:24Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:25Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:26Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:27Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:28Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:33Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:34Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:35Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:43Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:44Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:45Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:46Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:47Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:49Low confidence
- Network access in prose of documentationeino/references/docs_examples/CONTRIBUTING.md:50Low confidence
and 448 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Path .claude/settings.local.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/code-simplifier/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/code-simplifier/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/code-simplifier/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/code-simplifier/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/code-simplifier/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.