bewhy / genesis
如果Laravel 6.x的起点有一个完整的额外堆栈,并且类似于CMS-Shop
Requires
- php: ^7.2
- arcanedev/localization: ^6.2
- intervention/image: ^2.5
- laravelcollective/html: ^6.0
- spatie/laravel-activitylog: ^3.9
- spatie/laravel-permission: ^3.3
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-24 20:35:46 UTC
README
嗨,
“跳跃”的问候,这个git不应该 公开,而是二十年的个人经验在这个项目实验中汇聚。作为一位有幸初始化服务器和项目的开发者/分析师,以及项目的导师,想补充一下,主要目标是设计一个代码架构,这将能够
- 避免在新的客户项目中重复任何标准代码,例如登录;
- 这个登录也反映了角色和权限,以及它自己的管理,所有这些都在适当的时间;
- 任何新的客户项目都是一个机会,或者审查代码,添加缺失的功能,甚至创建一个新的内部堆栈;
- 新客户带来了更多的代码到Genesis,这个架构将扩展到所有运行的Genesis客户,例如一个账单变成所有账单;
- 现在的DevOps允许多层代码访问和责任
- 而资深人员则处于后端办公室(Genesis),初级人员可以专注于客户代码文件夹,我们可以在其文件夹/堆栈上定位专家。
我们不希望将另一个PHP框架带入生态系统,也不希望市场将Genesis作为其“商标”,但它是我们的专业工具箱,在BeWhy实施业务!
有人说过不应该公开,因为这是真实服务器中的真实代码... 这是一种心态!这是我们的吗???我们只得到了开源社区的很多帮助,正如我们稍后将要看到的,我们仍然使用其他人的代码作为依赖...
BeWhy不仅仅是一家公司,更是一种意识形态,而Genesis是对一条选择道路的承诺...
入门
之前没有提到,但Genesis不是一个全功能的Web框架,我们不是在每个方面都在重新发明轮子!我们只是在全堆栈“开发成果”结构中遵循几个最佳实践。
到这一点,你应该明白完整的教程在我们的主页上: BeWhy Genesis,但我们只为我们的企业客户提供支持。
Genesis本身不会工作,所以克隆或下载 git 没有意义。Genesis将只与我们的选择MVC, Laravel 6.x 交互。
先决条件
如前所述,Genesis是一个包含许多组件的工具箱,可以从0开始跳转到快速部署。
查看完整教程页面: BeWhy Genesis 或在 Built With 和 版本控制 章节。
唯一的先决条件是 Laravel 6.x,你选择的开发环境以及大脑,后者很重要...
如果你还没有喝够咖啡,安装Laravel环境是必须的!
在继续我们的教程之前,请检查您的本地站点是否正常!
到这一点,您应该有一些Laravel的经验,并且了解有关文件等技巧
Homestead.yaml && \etc\hosts && .env
并且您已经更新了您的本地服务器和composer... 准备好了吗?
使用
在安装之前,提醒您始终查看BeWhy Genesis以获取最新更新。
我们需要引用以下令人惊叹的团队,因为他们的代码、灵感和对世界编码社区的贡献。我们希望我们能够继承并改进您的遗产。到目前为止,所有的荣誉都应归功于
- codecalm/tabler - 我们在此基础上构建的Bootstrap4模板。
- arcanedev/localization - Laravel的简单i18n本地化工具,与Laravel本地化类结合使用非常有用。
- laravelcollective/html - Laravel框架表单和Html的官方文档。
- spatie/laravel-activitylog - 易于使用的功能,用于记录您应用程序用户的操作。
- spatie/laravel-permission - 在数据库中管理用户权限和角色。
- barryvdh/laravel-debugbar - 在开发环境中添加一个酷炫的栏到页脚,显示重定向、(jQuery) Ajax请求和查询等。
- barryvdh/laravel-ide-helper - 此包生成一个您的IDE可以理解的文件,因此它可以提供准确的自动完成。
- intervention/image - Intervention Image是一个开源的PHP图像处理和操纵库。
在“版本控制”章节中,我们将为我们的实际代码添加一些详细信息,但这一部分是对那些应得的人的特殊参考。在下一个主题中,我们将看到如何通过几个简单的步骤安装所有这些,并且我们将深入探讨如何与Genesis交互的示例。
安装
只需开始,一个新的Laravel项目... 一种方法可能是
composer create-project laravel/genesis client
您应该在http://client.xyz运行至少一个Laravel。
运行类似以下操作(取决于您的操作系统和先前配置)
vagrant ssh #connect to your server
cd client #go to you new project
composer require bewhy/genesis --dev
composer update
一条巨大的日志将确保,正在导入Genesis、我们的代码以及我们的要求……再次是开源的目标!只需让它完成,希望一切都能成功,我们继续保持信任的纽带!
在进入下一章之前,您需要运行
php artisan vendor:publish --provider="BeWhy\Genesis\GenesisServiceProvider" --tag="assets"
这将使模板被复制到:public/template/genesis/docs/index.html,如果您没有样式,这可能会导致缺少!您可以从起点开始检查……我们在public/css/genesis.css上添加了附加组件,并且别忘了扩展BootStrap 4.0规则……
完成
我们的工作还没有完成,我们只是添加了一些必须实现才能使系统完全运行的依赖项。
所以在这个时候,只需前往您的开发站点,查找如何完成安装,应该是类似http://client.xyz/genesis的内容。不用担心,这些路由组仅在本地环境中可用(参考.env文件)。
部署
关于BeWhy和/或Genesis的有趣事实之一是,我们的客户有自己的GitLab,而Genesis在GitHub上。我们的项目有Genesis和自己的依赖项,而Genesis已经是依赖项和专用业务逻辑的包。这就是为什么您有两个步骤的部署,但您将每次都能得到一些好处。
composer update
这是我们确保软件有稳定且独立的增长的一种方式,随着时间的推移,有一个主分支,您可以保持独立性。看起来我正在做两倍的工作,但与许多堆栈、团队、更换开发者和其他“客户”历史打交道后……
不要抱怨,要做得更好……这是Genesis。
贡献
虽然我们展示了原始代码,但贡献仅限于邀请。如果您想为我们工作,可以将您的求职信发送到 rh@bewhy.org
对于被添加为 Genesis 的 Git 用户 的人,我还提供了一个小贴士,关于如何最好地将我们的源代码与大家所做的其他任何内容区分开来。
以快进模式进行
composer create-project laravel/genesis genesis
vagrant ssh
cd genesis
mkdir packages/BeWhy/Genesis
cd packages/BeWhy/Genesis
git pull https://github.com/bewhy-pt/genesis.git
composer dump-autoload
cd ~/genesis | cd -
vi composer.jon #look and replace
"autoload": {
"psr-4": {
"BeWhy\\Genesis\\": "packages/BeWhy/Genesis/src",
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
"autoload-dev": {
"psr-4": {
"BeWhy\\Genesis\\": "packages/BeWhy/Genesis/src",
"Tests\\": "tests/"
}
},
composer update
php artisan vendor:publish --provider="BeWhy\Genesis\GenesisServiceProvider" --tag="assets"
您应该已经一切正常!有没有开发者,您将使用 Laravel 目录结构来检查您的 Genesis 代码的 "边界",也就是 packages/BeWhy/Genesis 文件夹中的所有内容。
理论上,请 不要 每个客户端都有自己的 Git 与 Genesis,以及其他 Git 与客户端,因为目录结构。如果您使用这种方法,别忘了将文件夹添加到客户端的 .gitignore 文件中。
最好将 packages/BeWhy/Genesis 作为 IDE 根目录;既然 genesis.xyz 调用了 Laravel 的 "边界" 和未知(即 Genesis),您将更好地感知这三个世界:Laravel、Genesis、客户端。
版本控制
再次提醒,您应该始终查看 BeWhy Genesis 获取最新更新。有关可用的源代码版本,请参见 GitHub。
假设这个文件会被遗忘,让我们展望我们的版本未来;是的,一个更好的版本控制解决方案。
-
[ 阶段 0 ] - 设置 BeWhy & Genesis 全局
-
[ 阶段 1 ] - 导入第一个包
- 模板 - 运行 Genesis 模板用于教程,或扩展到网站布局;
- 设置 - 帮助管理全局变量和其他依赖项(例如角色权限);
- Crm - 客户关系管理 - 管理资料、头像、状态、历史记录;
- Igm - Genesis 消息 - 用户之间的消息系统;
- 商店 - 阶段 0 - 添加文件结构,但首先是断点;
- 文件 - 上传附件到所有上述内容;
-
[ 未来阶段 ] - 添加更多包
- Genesis 阶段 1 的 SOLID 集成
- 通过 Passport 进行身份验证,而不是通过常规 Laravel\Auth(更私密)
- 支付系统 - PayPal、Stripe
- 版本控制
许可证
本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE.md 文件
致谢
- 首先:上帝,因为创造了万物
- 其次:魔鬼,因为发展了数学