swoft-cloud / swoft

🚀 PHP Microservice Full Coroutine Framework
https://swoft.org
Apache License 2.0
5.58k stars 786 forks source link

swoft一些建议 #924

Closed tw2066 closed 1 year ago

tw2066 commented 5 years ago
Q A
Bug report? no
Feature request? yes
Swoft version 2.0.5
Swoole version 4.4.4
PHP version 7.2
Runtime environment CentOS 7

Details

通过工具生成实体 和 模型中方法重名,导致报错; 意见模型中不要中get开头方法,防止重名

    /**
     * @return string
     */
    protected function getClassName(): string
    {
        return Proxy::getClassName(static::class);
    }

    /**
     * @return string
     */
    public function getKey(): ?string
    {
        return $this->key;
    }

    /**
     * Get the route key for the model.
     *
     * @return string
     * @throws DbException
     */
    public function getRouteKeyName()
    {
        return $this->getKeyName();
    }

每次启动项目都需要扫描全文件 , 希望首次能缓存文件. 启动只扫描部分目录; 再与缓存文件合并,可以大大提升启动速度

bean.php 随着配置不断增多 不易管理 , 希望能拆分不同文件来管理

官网文档的搜索 无法访问… (不能翻墙!!!)

stelin commented 5 years ago

感谢您给swoft提供宝贵的建议

1、缓存正在考虑 2、bean.php文件现在是支持分文件的,后面我加demo 3、官网可以访问的,关闭代理吧 4、模型重名问题,我们优化下,这个之前没有修改完成

xskit commented 5 years ago

建议把获取Bean实例时的 init() 和 destroy() 两个勾子方法的命名修改一下,可以加个前缀 类似 __init() 什么的,必免和功能接口的常规命名冲突,因为我使用了destroy() 做为删除接口的方法名。后来在看源码才发现Bean容器有用到这个方法名的常量 DESTROY_METHOD,好像并没有实际使用到,我有点慌