{"id":24969298,"url":"https://github.com/yianandcode/phalcon-micro-skeleton","last_synced_at":"2025-03-29T04:47:41.361Z","repository":{"id":85968884,"uuid":"138620166","full_name":"YianAndCode/phalcon-micro-skeleton","owner":"YianAndCode","description":"A Phalcon Micro skeleton","archived":false,"fork":false,"pushed_at":"2018-12-07T03:01:28.000Z","size":8,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-03T14:46:03.657Z","etag":null,"topics":["microframework","phalcon","phalcon-skeleton","php"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YianAndCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-25T16:17:56.000Z","updated_at":"2020-05-12T15:16:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"a0f67b8a-d996-43a3-895e-21562b915d02","html_url":"https://github.com/YianAndCode/phalcon-micro-skeleton","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YianAndCode%2Fphalcon-micro-skeleton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YianAndCode%2Fphalcon-micro-skeleton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YianAndCode%2Fphalcon-micro-skeleton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YianAndCode%2Fphalcon-micro-skeleton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YianAndCode","download_url":"https://codeload.github.com/YianAndCode/phalcon-micro-skeleton/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246140550,"owners_count":20729798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["microframework","phalcon","phalcon-skeleton","php"],"created_at":"2025-02-03T14:37:09.146Z","updated_at":"2025-03-29T04:47:41.354Z","avatar_url":"https://github.com/YianAndCode.png","language":"PHP","readme":"# Phalcon Micro Skeleton\n\n\u003e Phalcon 微服务项目模板\n\n## 目录结构\n\n```\n├── app\n│   ├── config\n│   │   ├── config.php\n│   │   ├── loader.php\n│   │   ├── router.php\n│   │   └── services.php\n│   │\n│   ├── controllers\n│   │   └── ControllerBase.php\n│   │\n│   ├── middlewares\n│   │   └── MiddlewareBase.php\n│   │\n│   ├── models\n│   │   └── ModelBase.php\n│   │\n│   ├── services\n│   │\n│   ├── tasks\n│   │   └── MainTask.php\n│   │\n│   ├── traits\n│   │   └── Model\n│   │       └── SoftDelete.php\n│   │\n│   ├── app.php\n│   └── cli.php\n│\n├── public\n│   ├── index.php\n│   └── .htaccess\n│\n├── vendor\n│\n├── composer.json\n├── config.ini\n└── index.html\n```\n\n其中，`/vendor` 是由 composer 安装的依赖包目录，默认为使用 composer 依赖，如果不需要，则将 `/public/index.php` 中的\n\n```\nrequire BASE_PATH . '/vendor/autoload.php';\n```\n\n注释或删除即可\n\n## 中间件\n\nPhalcon 的中间件不支持只对某一组路由生效，因此对中间件封装了一次，可以直接继承 `Middlewares\\MiddlewareBase`，然后重写 `public function handle(Micro $app): bool` 方法即可；`Middlewares\\MiddlewareBase` 添加了 `protected $onlys = [];`（白名单） 和 `protected $excepts = [];`（排除列表），支持正则表达式，例如：\n\n```PHP\n\u003c?php\n\nnamespace Middlewares;\n\nuse Phalcon\\Mvc\\Micro;\n\nclass AuthMiddleware extends MiddlewareBase\n{\n    protected $excepts = [\n        '/user/login',    // 用户登录\n        '/wechat/*',      // 微信被动消息、支付回调等等\n    ];\n\n    public function handle(Micro $app): bool\n    {\n        if (! is_authorized()) {\n            return false;\n        }\n\n        return true;\n    }\n}\n\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyianandcode%2Fphalcon-micro-skeleton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyianandcode%2Fphalcon-micro-skeleton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyianandcode%2Fphalcon-micro-skeleton/lists"}