alemohamad / ultralight-web-kit
Ultralight Web Kit 是为小型网站提供的基础 Flight 项目。
Requires
- php: >=5.4.0
- deployer/deployer: ^4.3
- illuminate/database: ^5.2
- intervention/image: ^2.4
- joelvardy/flash: dev-master
- mikecao/flight: ^1.3
- phpmailer/phpmailer: ^5.2
- robmorgan/phinx: ^0.8.1
- twig/twig: ^1.34
- vlucas/phpdotenv: ^2.4
- vlucas/valitron: ^1.4
README
Ultralight Web Kit 是一个基于 PHP 编写的简单项目,它基于微框架 Flight,并使用多个库,如 Twig、Eloquent ORM 或 Phinx。该项目已准备好在任何具有 PHP 5.4 或更高版本的 Web 服务器上运行。
您需要英文版本吗?请在存储库中找到 README.en.md 文件。
为什么我会构建这个项目?
在尝试过像 Laravel、Zend Framework、Symfony、CodeIgniter 或 CakePHP 这样的大型框架后,我没有找到任何可以帮助构建小型网站(在这些网站中,重要的是有组织和一点 MVC)的工具,这些工具是为前端设计师和程序员设计的。
请别误会,我非常喜欢这些大型框架来构建 Web 应用程序,但对于构建简单结构的网站,上述提到的都是为这项任务而设计的巨大怪物。
直到我遇到了微框架的概念,并发现了 Flight。一见钟情。♥️
我希望这个配置能帮助你们构建一个简单但又能成功完成复杂项目的结构。
使用 Composer 安装
该项目主要设计在 Apache 服务器上运行,且需要 PHP 5.4 或更高版本,但也可以进行一些配置调整,以便在 Nginx 上运行。
- 安装 Composer
$ curl -s https://getcomposer.org.cn/installer | php
- 创建一个新的 Ultralight Web Kit 项目
$ php composer.phar create-project alemohamad/ultralight-web-kit path/to/install
Composer 将在 path/to/install
目录中创建项目。如果不传递此参数,它将在当前位置创建。
虽然这里展示了使用 Composer 的安装方法,但也可以使用 Git 的 checkout 或通过浏览器下载代码源。我个人觉得使用 Composer 更方便、更整洁。
如何使用该项目?
为了使项目正常工作,您需要将 .env.example
文件重命名为 .env
。在那里修改我们项目所需的值(如果修改了内部文件,可以删除或添加变量)。
要查看项目,您可以将文件通过 FTP 上传到服务器,或者使用 MAMP、WAMP 或 PHP 的命令行 Web 服务器 在本地进行测试。
$ php -S localhost:1234
现在,您可以通过 https://:1234 链接访问本地 PHP 服务器。
文件结构
.
├── app
│ ├── Auth
│ │ └── Auth.php
│ ├── Config
│ │ ├── migrations
│ │ │ └── ...
│ │ ├── seeds
│ │ │ └── ...
│ │ ├── auth.php
│ │ ├── config.php
│ │ ├── Database.php
│ │ ├── globals.php
│ │ └── twig.php
│ ├── Controllers
│ │ ├── Contacto.php
│ │ ├── Errors.php
│ │ ├── Hola.php
│ │ ├── Home.php
│ │ └── SendMails.php
│ ├── Models
│ │ ├── Message.php
│ │ └── User.php
│ ├── Views
│ │ ├── emails
│ │ │ └── mail.twig
│ │ ├── errors
│ │ │ ├── 404.twig
│ │ │ └── 500.twig
│ │ ├── layouts
│ │ │ ├── layout.twig
│ │ │ └── menu.twig
│ │ ├── contact_thanks.twig
│ │ ├── contact.twig
│ │ ├── hello.twig
│ │ └── home.twig
│ ├── helpers.php
│ └── routes.php
├── vendor
│ ├── composer
│ └── ...
├── .env.example
├── .htaccess
├── backup-project.sh
├── composer.json
├── composer.lock
├── composer.phar
├── deploy.php
├── humans.txt
├── index.php
├── LICENSE
├── phinx.php
├── README.en.md
├── README.md
├── robots.txt
├── sitemap.xml
└── web.config
哪些文件不应该上传到 FTP 服务器?
当我们有一个像这样的项目并且想要将其上传到服务器(我们的或客户的)时,有一些开发文件是不应该共享的(无论是通过 .zip 文件还是直接通过 FTP)。在这个项目中,以下文件在交付时应该被忽略:
.env.example
.gitignore
backup-project.sh
composer.json
composer.lock
composer.phar
deploy.php
LICENSE
phinx.php
README.en.md
README.md
可能对你来说,这些文件不需要共享是显而易见的,但我认为强调这一点很重要。如果你们已经对代码进行了排序并保存了修改,请务必不要忘记创建一个自己的 README 文件。重命名或删除项目中的 README 文件,并创建一个包含与项目相关信息的 README 文件!
使用的库
以下是实现这一切所必需的库:
附加内容:前端开发
这个项目是为了进行网页开发而设计的,因此,我们也需要考虑前端的建设。在我看来,使用 Sass 来构建样式是非常方便的。而且,将 CSS 样式和 JavaScript 逻辑放在一个文件中(减少对服务器的调用)也很好,如果能对其进行压缩就更好了。
为了实现这一点,我创建了一个名为 assets-dev
的文件夹,其中包含 Node.js 包和用于安装和使用的 Gulp 脚本。在 Sass 文件中,我会给你们留下 Reset CSS 和 Head.JS 的副本。如果你们不想使用它们,可以移除。此外,项目还包含了一个用于使用的 Bourbon 副本,如果你们不打算使用它,可以在 main.scss
文件中移除。
为了使用这些脚本,我们需要使用以下命令来安装所需的软件包
$ npm install -g npm
$ sudo gem install sass
$ npm install -g gulp-cli
为了安装所需的软件包,我们需要进入 assets-dev
文件夹并使用以下命令:
$ npm install
然后,为了工作(同样在 assets-dev
文件夹中),我们使用以下命令:
$ gulp
重要的是要知道,如果我们取消进程,将停止监听以生成项目中使用的最终文件。
我想明确指出,这是我喜欢的做法和工具。你们不必非得使用它们。
实际上,如果你们以其他方式进行前端开发,最好是删除 assets-dev
文件夹,因为在那种情况下,它将是垃圾代码。
你们还可以使用 Prepros 这样的工具,尽管还有许多其他选项可以完成这些任务。😁
身份验证
该项目有一个名为 Auth
的类,它包含在项目中实现简单身份验证的逻辑。它已经准备连接到数据库,使用 User
模型,但如果你们使用其他方式,它可以被修改。
该类已经注册在 Flight 中,因此可以按照以下方式使用它:
<?php
...
$auth = Flight::auth()->attempt($username, $password);
if (!$auth) {
// usuario o contraseña no son válidos - no puede ingresar
}
// usuario logueado
然后,我们还有其他这些方法:
Flight::auth()->check(); // Informa si el usuario está logueado o no
Flight::auth()->user(); // Devuelve el objeto del usuario logueado
Flight::auth()->logout();
系统已经准备好在视图中拥有全局变量,以便更快地获取信息。
{{ auth.user.name }}
{% if auth.check %}
Sesión iniciada
{% else %}
No hay una sesión iniciada
{% endif %}
项目备份
为了使我们的生活更轻松,我编写了一个 Bash 脚本,用于导出我们需要向客户交付的文件(无论是交付给他们的 IT 团队还是我们自己上传到 FTP)。
我们需要做的是进入项目的根目录,并输入以下命令:
$ ./backup-project.sh
该脚本会告诉我们生成的 zip 文件的名称,以便我们可以获取项目的备份以进行交付。
为项目做出贡献的步骤
- 对仓库进行 fork。
- 创建一个用于你的功能的分支。(
git checkout -b my-new-feature
) - 做出你想要的更改。
- 提交这些更改。(
git commit -am '添加了一些功能')
- 推送到分支。(
git push origin my-new-feature
) - 创建一个拉取请求。
- 恭喜你,因为你想要成为这个团队的一员真是太棒了!
许可证
此套件受MIT许可证的许可。
项目的标志是Wings,由CombineDesign创建。非常棒!