{"id":23921909,"url":"https://github.com/cheerego/happy_yaf","last_synced_at":"2025-10-13T04:39:34.291Z","repository":{"id":46604103,"uuid":"64728402","full_name":"cheerego/happy_yaf","owner":"cheerego","description":"搭建一个可用的Yaf，包括Laravel的Eloquent ORM、Twig、脚手架、Whoops和使用用例","archived":false,"fork":false,"pushed_at":"2017-02-17T04:40:34.000Z","size":44,"stargazers_count":19,"open_issues_count":1,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-31T20:35:17.647Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/cheerego.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}},"created_at":"2016-08-02T05:57:53.000Z","updated_at":"2022-07-19T07:54:43.000Z","dependencies_parsed_at":"2022-08-02T20:00:52.194Z","dependency_job_id":null,"html_url":"https://github.com/cheerego/happy_yaf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cheerego/happy_yaf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheerego%2Fhappy_yaf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheerego%2Fhappy_yaf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheerego%2Fhappy_yaf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheerego%2Fhappy_yaf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheerego","download_url":"https://codeload.github.com/cheerego/happy_yaf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheerego%2Fhappy_yaf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013681,"owners_count":26085390,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-05T16:47:20.867Z","updated_at":"2025-10-13T04:39:34.271Z","avatar_url":"https://github.com/cheerego.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"鸟哥的[Yaf](https://github.com/laruence/yaf)\n# 安装\n1. 请确保机器已经安装了Yaf框架, 并且已经加载入PHP;\n2. 把项目目录Copy到Webserver的DocumentRoot目录下;\n3. 需要在php.ini里面启用如下配置，生产的代码才能正确运行：\n\tyaf.use_namespace=1\n\tyaf.use_spl_autoload=1\n4. 重启Webserver;\n5. 进入项目目录执行 conposer require;\n6. 访问`http://yourhost/path_to_your_yaf/`,出现Hellow Word!, 表示运行成功,否则请查看php错误日志;\n# 文档\n在该工程的很多目录下都有readme.txt里面会有一些使用概述\n# 目录结构\n```\n.\n├── application\n│   ├── Bootstrap.php\n│   ├── controllers\n│   │   ├── Error.php   //处理错误的控制器 需配置默认开启application.dispatcher.catchException = true\n│   │   ├── Index.php   //默认控制器\n│   │   └── readme.txt\n│   ├── library      //类库文件夹，包含类库的加载规则示例\n│   │   ├── DB.php\n│   │   ├── Twig.php  //twig库文件 实现Yaf\\View_interface\n│   │   ├── helper.php //helper是工具函数类\n│   │   ├── lib\n│   │   ├── readme.txt\n│   │   └── test.php\n│   ├── models       //包含实现ORM的User.php示例 模型类使用的是laravel中使用的ORM\n│   │   ├── Sample.php\n│   │   ├── User.php\n│   │   └── readme.txt\n│   ├── modules\n│   │   ├── api      //实现了一个api模块\n│   │   └── readme.txt\n│   ├── plugins      //插件文件夹\n│   │   ├── Sample.php\n│   │   └── readme.txt\n│   └── views        //试图文件夹\n│ \n├── conf\n│   └── application.ini     //配置文件\n├── command  //脚手架库文件\n│   ├── GenerateControllerCommand.php\n│   ├── GenerateModelCommand.php\n│   ├── GeneratePluginCommand.php\n│   └── templates            //脚手架模板文件夹\n│       ├── controller.php\n│       ├── model.php\n│       └── plugin.php\n├── storage\n│   └── twig   //twig模板引擎缓存文件\n├── vendor     //composer依赖库\n├── .htaccess  //apache重写规则\n├── smartisan  //脚手架工具\n├── index.php  //入口文件\n├── readme.md\n├── composer.json\n└── composer.lock\n```\n# 配置\n配置文件 `conf/application.ini`  \n如果不想使用DB可以注释掉Bootstrap.php中的_initDatabaseEloquent\n# 脚手架工具\n#### 用法\n```\nphp smartisan\nphp smartisan create:controller {ModuleName}/{ControllerName}\nphp smartisan create:model  {ModelName}\nphp smartisan create:plugin {PluginName}\n```\n#### 扩充\n如果想自己添加一些脚手架Command你需要:  \n1. 在Command目录下编写一个GenerateXXXCommand.php(可以参照已经写好的例子)  \n2. 然后在smartisan中注册这个命令\n# Twig\nYaf使用其他的模板引擎需要实现Yaf\\View_Interface这个Interface，然后在Bootstrap.php中注册。\n使用Twig的用例，在`application\\library\\Twig.php`\n# 使用依赖\n- [illuminate/database](https://packagist.org/packages/illuminate/database) \n- [twig/twig](https://packagist.org/packages/twig/twig) \n- [filp/whoops](https://packagist.org/packages/filp/whoops) \n- [symfony/console](https://packagist.org/packages/symfony/console) \n\n#Last\n后续会增加 seeder csrf log redis migrate   \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheerego%2Fhappy_yaf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheerego%2Fhappy_yaf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheerego%2Fhappy_yaf/lists"}