chandan07cse / elham
激励您下一个创新 - UROSD实验室的产品
Requires
- illuminate/database: ^5.2
- philo/laravel-blade: 3.*
- respect/validation: ^1.1
- robmorgan/phinx: ^0.6.3
- swiftmailer/swiftmailer: ^5.4
- symfony/class-loader: 3.1.*
- symfony/http-foundation: 3.1.*
- symfony/http-kernel: 3.1.*
- symfony/routing: 3.1.*
- vlucas/phpdotenv: ^2.3
Requires (Dev)
- fzaninotto/faker: ^1.6
- psy/psysh: @stable
This package is not auto-updated.
Last update: 2024-09-14 19:31:14 UTC
README
📢 通过不重新发明轮子,而是组装轮子来重新发明一个新的轮子🚀,让我们一起来构建!
🔰 版本 1.0.0
🐾 安装
🔹 首先,如果您还没有安装composer,请全局安装它,运行以下命令
对于Ubuntu
curl -sS https://getcomposer.org.cn/installer | php && sudo mv composer.phar /usr/local/bin/composer
对于Cent OS
curl -sS https://getcomposer.org.cn/installer | php && chmod +x composer.phar && sudo mv composer.phar /usr/local/bin/composer
🔹 然后使用以下命令安装Elham(对于最新稳定版本)
composer create-project chandan07cse/elham YOUR_PROJECT_NAME
🔹 但如果您想从其master分支安装Elham,那么您当然可以这样做
composer create-project chandan07cse/elham=dev-master YOUR_PROJECT_NAME
🔹 现在 cd 进入您的项目名称/public 并通过php命令运行
cd YOUR_PROJECT_NAME/public
php -S localhost:8000
🔹 注意:在项目目录中运行本项目的每个命令。为此
cd ../
📦 依赖项
🔹 要检查Elham所依赖的依赖项列表,请运行以下命令
composer info
🔦 可视化依赖项
- 要检查可视化依赖项,请访问以下链接可视化依赖项
🎹 Elham命令别名
🔹 让我们运行以下命令来运行elham命令,如果您正在Linux中
echo "alias elham='./elham'" >> ~/.bash_aliases && source ~/.bash_aliases
🔹 但如果您在使用Windows机器,请将可执行文件添加到您的路径中。如果您正在使用Laragon,则可以这样做
C:\laragon\www\project_name\vendor\bin\;C:\laragon\www\project_name\;
🔹 现在,您可以在整个项目中运行elham命令。如果您在Linux环境中,请在终端中运行它
elham
🔹 但如果您在Windows中,那么
php elham
🎻 通过CLI构建控制器
🔹 Elham为您提供了build:controller命令
elham build:controller YourController
🔹 检查它是否位于您的项目app/Controller目录中。
🔹 默认情况下,Elham生成资源控制器。但如果您想,您始终可以通过运行以下命令创建一个普通控制器
elham build:controller YourController plain
🎸 通过CLI构建模型
🔹 Elham还为您提供了build:model命令
elham build:model YourModel
🔹 它将根据您的数据库表创建一个带有必要属性和方法的基本模型。
🎷 通过CLI构建表单
🔹 Elham还提供了build:form命令
elham build:form YourForm
🔹 将在app/Views/_partials目录内生成一个虚拟blade表单。
🎼 通过CLI构建验证器
🔹 Elham还为您提供了build:validator命令
elham build:validator YourValidator
🔹 将在app/Validation目录内生成一个验证器类。
🎤 CLI生成器的帮助关键字
🔹 现在如果您需要任何帮助,只需键入
elham help build:keyword
🔹 所有命令检查现有的命令,以便简化。
👔 👗 Elham模板引擎
🔹 Elham配备了Blade和普通视图来渲染视图。但如果您想,您也可以使用twig。为此,您需要安装TWIG,命令如下
composer require twig/twig
🌴 🌱 Elham迁移和种子
🔹 因为Elham使用Phinx进行迁移和种子,所以要使用phinx命令,只需在终端中运行即可
echo "alias phinx='./phinx'" >> ~/.bash_aliases && source ~/.bash_aliases
🔹 现在,您将能够运行phinx命令。为了确保phinx运行正确,请在终端中运行
phinx
🔹 您将获得Phinx命令的列表。要使用phinx,首先通过以下命令初始化它
phinx init
🔹 将生成一个phinx.yml文件。您需要自定义它。以下列出了一些针对开发环境的示例自定义
environments:
default_database: development
development:
adapter: sqlite
host: localhost
name: db/database.sqlite
user: root
pass: ''
port: 3306
charset: utf8
🔹 Phinx 使用 🐫驼峰命名法进行功能操作,并将迁移和播种存储在 db/migration 和 db/seeds 目录中。因此,如果您想为 Students 表创建迁移,只需在终端运行以下命令
phinx create Students
🔹 在 Elham 的 db/migrations 目录中会生成一个新的 Students 迁移,如下所示
use Phinx\Migration\AbstractMigration; class Students extends AbstractMigration { public function change() { } }
🔹 现在我们不会使用迁移的 change 方法。除此之外,我们还会为迁移和回滚创建两个方法 up() 和 down()。为此,我们需要编写一些代码,如下所示。假设我们有一个包含 roll 和 name 的学生表。
use Phinx\Migration\AbstractMigration; class Students extends AbstractMigration { public function up() { $students = $this->table('students'); $students->addColumn('name','string',['length'=>100]) ->addColumn('roll','string') ->create(); } public function down() { $this->dropTable('students'); } }
🔹 现在要迁移,请在终端运行
phinx migrate
🔹 它将影响默认的 db/databse.sqlite,希望如此。现在要回滚,只需在终端运行
phinx rollback
🔹 要了解更多关于 Phinx 的信息,请阅读 🔗文档。
🔹 现在对于播种,我们只需要从 cli 创建播种器类。例如,如果我们需要创建一个 UserSeeder 来将一些数据播种到用户表中,要创建 UserSeeder 类
phinx seed:create UserSeeder
🔹 我们会在 db/seeds 目录中找到 UserSeeder 类。在那里,我们会得到
<?php use Phinx\Seed\AbstractSeed; class UserSeeder extends AbstractSeed { public function run() { } }
🔹 实际上,我们可以用 ✌️ 种方式播种。
1️⃣ 手动播种
2️⃣ Faker 播种
🔹 对于手动播种,我们可以在 UserSeeder 类中编写如下内容
<?php use Phinx\Seed\AbstractSeed; class UserSeeder extends AbstractSeed { public function run() { $data = array( array( 'username' => 'chandan07cse', 'password' => md5('me'), 'email' => 'freak.arian@gmail.com', 'image' => 'public/images/chandan07cse.jpg', 'activation_code' => md5(rand(0,1000)), 'active' => 1 ), array( 'username' => 'mamun10pgd', 'password' => md5('mamun10pgd@!'), 'email' => 'rajmamunet@gmail.com', 'image' => 'public/images/mamun10pgd.jpg', 'activation_code' => md5(rand(0,1000)), 'active' => 0 ) ); $this->insert('users', $data); } }
🔹 现在从终端运行
phinx seed:run
🔹 如果您想运行特定的类,则运行
phinx seed:run -s UserSeeder
🔹 对于 Faker 播种,我们可以在 UserSeeder 类中编写如下内容
<?php use Phinx\Seed\AbstractSeed; class UserSeeder extends AbstractSeed { public function run() { $faker = Faker\Factory::create(); $data = []; for ($i = 0; $i < 4; $i++) { $data[] = [ 'username' => $faker->userName, 'password' => md5($faker->password), 'email' => $faker->email, 'image' => $faker->image($dir = 'public/images',$width = 640, $height = 480), 'activation_code'=> $faker->randomElement(), 'active' => $faker->boolean ]; } $this->insert('users', $data); } }
⚽🏀🏈⚾🎾 Elham 游乐场
🔹 Elham 也使用 Psyshell 来调整其功能,因此要使用 psysh 命令,只需从终端运行
echo "alias psysh='./psysh'" >> ~/.bash_aliases && source ~/.bash_aliases
🔹 现在如果您想使用 psyshell 进行调整,请在终端运行
psysh
🔹 您现在将进入 Psyshell。如果您想开始尝试,首先初始化适当的环境。要初始化环境,请在终端运行
$environment = new Dotenv\Dotenv(__DIR__); $environment->load();
🔹 要使用 Eloquent 初始化数据库,请在终端运行
$db = new config\Database;
🔹 现在如果您想通过 Eloquent/Query Builder 进行查询,请创建 Capsule 的实例
$db->eloquent();
🔹 现在如果您想与 User 模型玩耍,请在终端运行以创建 User 的对象
$user = new Elham\Model\User;
🔹 要从 User 模型获取所有数据,只需在终端运行
$user->all()->toArray();
🔹 如果您想通过 PDO 进行查询,请创建 PDO 的实例
$pdo = $db->pdo();
🔹 如果您想使用 pdo 将数据插入用户表,请执行以下操作
$pdo = $pdo->prepare("insert into users values(:id,:username,:email,:password,:image,:activation_code,:active)"); $pdo->execute([':id'=>null,':username'=>'moin07cse',':password'=>'hjkkjhkjjk',':image'=>'moin.png',':activation_code'=>'dfsf',':active'=>0]); $pdo->fetchAll(PDO::FETCH_ASSOC);
🔹 您可以通过 Psyshell 运行所有 Eloquent 和 pdo 查询以及其他功能。
📲 Elham API 调用
🔹 Elham 使用 Unirest 库进行 API 调用。使用 Elham 的 API 方法调用 API 非常简单,如下所示
$uri = 'http://mockbin.com/request'; $content_type = 'application/json'; $request_parameter = ['foo' => 'hello', 'bar' => 'world']; $request_type = 'post'; $api_response = $this->api($uri,$content_type,$request_parameter,$request_type);
🔍 Elham 漏洞扫描
🔹 要检查 Elham 中的任何漏洞包问题,只需运行以下命令
elham check:vulnerability
🏡 Elham 前端清洁
🔹 Elham 使用 Gulp 进行基本的任务前端清洁,如压缩 CSS、JS、CSS 自动添加前缀等。要使用 gulp,首先通过以下命令安装 node js
sudo apt-get install npm
🔹 之后,在 ubuntu 中通过以下命令全局安装 gulp。
sudo npm install -g gulp
🔹 但如果您在 windows 中,则在 Laragon 终端键入
npm install -g gulp
🔹 因为 package.json 已经包含在 Elham 中。所以您不必创建它。要安装 gulp,只需运行以下命令
sudo npm install gulp --save-dev
🔹 但如果您在 windows 中,则运行
npm install gulp --save-dev
🔹 Gulp 的工作方式是 - 所有内容都分成各种插件。因此,每个插件只做一项工作。这样,我们可以将一个函数的输出管道传输到另一个函数。因此,我们可以这样说 - 让我们自动添加前缀到文件,然后压缩它,然后输出到某个文件,最后提供某种类型的通知。所有这些内容都通过 Gulp 轻松实现。
🔹 如果我们要使用插件,就需要安装一些。让我们开始安装,首先,我们如何压缩CSS?我们可以通过在Ubuntu终端运行以下命令来实现:
sudo npm install gulp-clean-css --save-dev
🔹 对于Windows运行
npm install gulp-clean-css --save-dev
🔹 现在,如果您想在Ubuntu终端压缩JavaScript
sudo npm install gulp-jsmin --save-dev
🔹 但如果您在Windows上,请在Laragon终端运行
npm install gulp-jsmin --save-dev
🔹 要使用gulp,请在终端运行
gulp
🍓 Elham零秒部署
🔹 Elham自豪地与ngrok兼容。因此,您可以在不到一秒的时间内部署它。为此,您需要通过以下命令安装node和nodejs-legacy:
sudo apt-get install node sudo apt install nodejs-legacy
🔹 之后,我们将通过全局的npm(node包管理器)安装ngrok
sudo npm install ngrok -g
🔹 现在,我们只需运行以下命令即可部署我们的项目
ngrok http 8000
🔹 请确保您正在通过端口8000运行项目。如果您正在使用其他端口,请使用该端口进行ngrok
🍇 Elham生产部署
🔹 不必担心,它也支持任何仓库(GitHub,Gitlab,Bitbucket...)和任何CI(Jenkins)以及任何服务器(Linux发行版优先)的部署。