penoaks / milky-framework
Milky 框架
Requires
- php: >=5.5.9
- ext-mbstring: *
- ext-openssl: *
- classpreloader/classpreloader: ~3.0
- doctrine/inflector: ~1.0
- jeremeamia/superclosure: ~2.2
- league/flysystem: ~1.0
- monolog/monolog: ~1.11
- mtdowling/cron-expression: ~1.0
- nesbot/carbon: ~1.20
- paragonie/random_compat: ~1.4
- psy/psysh: 0.7.*
- swiftmailer/swiftmailer: ~5.1
- symfony/console: 2.8.*|3.0.*
- symfony/debug: 2.8.*|3.0.*
- symfony/finder: 2.8.*|3.0.*
- symfony/http-foundation: 2.8.*|3.0.*
- symfony/http-kernel: 2.8.*|3.0.*
- symfony/polyfill-php56: ~1.0
- symfony/process: 2.8.*|3.0.*
- symfony/psr-http-message-bridge: ^0.2.0
- symfony/routing: 2.8.*|3.0.*
- symfony/translation: 2.8.*|3.0.*
- symfony/var-dumper: 2.8.*|3.0.*
- symfony/yaml: 3.1.*
- vlucas/phpdotenv: ~2.2
- zendframework/zend-diactoros: ^1.3
Requires (Dev)
- filp/whoops: ^2.1
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- penoaks/framework-exceptions: ^8.6
- phpunit/phpunit: ~4.0
- symfony/css-selector: 2.8.*|3.0.*
- symfony/dom-crawler: 2.8.*|3.0.*
Suggests
- ext-xdebug: Highly recommended for framework development as it provides exception call stacks.
- aws/aws-sdk-php: Required to use the SQS queue driver and SES mail driver (~3.0).
- doctrine/dbal: Required to rename columns and drop SQLite columns (~2.4).
- fzaninotto/faker: Required to use the eloquent factory builder (~1.4).
- guzzlehttp/guzzle: Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).
- league/flysystem-aws-s3-v3: Required to use the Flysystem S3 driver (~1.0).
- league/flysystem-rackspace: Required to use the Flysystem Rackspace driver (~1.0).
- pda/pheanstalk: Required to use the beanstalk queue driver (~3.0).
- penoaks/framework-project: Provides a basic project example for Penoaks Framework
- predis/predis: Required to use the redis cache and queue drivers (~1.0).
- pusher/pusher-php-server: Required to use the Pusher broadcast driver (~2.0).
- symfony/css-selector: Required to use some of the crawler integration testing tools (2.8.*|3.0.*).
- symfony/dom-crawler: Required to use most of the crawler integration testing tools (2.8.*|3.0.*).
- symfony/psr-http-message-bridge: Required to psr7 bridging features (0.2.*).
This package is not auto-updated.
Last update: 2024-09-14 19:58:27 UTC
README
入门
Milky 框架使用 Composer 来管理依赖项。因此,在使用 Milky 框架之前,请确保您的机器上已安装 Composer。
依赖项
请确保已安装以下依赖项。
- PHP >= 5.5.9
- OpenSSL PHP 扩展
- PDO PHP 扩展
- Mbstring PHP 扩展
- Tokenizer PHP 扩展
使用 Composer 安装
您可以通过在终端中运行 Composer 的 create-project
命令简单地安装 Milky 框架
composer create-project --prefer-dist penoaks/milky-framework framework
您还可以通过在您的 composer 项目中简单地要求我们的存储库来安装框架,请记住至少引用我们的框架项目,例如项目文件。
composer require penoaks/milky-framework composer update
您的第一个项目
使用 Milky 框架,没有应用程序或用户文件存储在框架目录中。相反,视图、控制器等存储在您的 webroot 中找到的 src
(可自定义)目录中。正因为如此,您可以简单地通过删除旧的框架目录并重新安装来更新您的安装。您只需要 index.php
和 .htaccess
文件来设置适当的路由。请确保您已启用 Apache 的 mod_rewrite
模块。
.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Ignore Let's Encrypt Challenges
RewriteRule ^.well-known - [L]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Pass Request to Penoaks Framework
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
index.php
<?php $fw = require( "framework/Constructor.php" ); // Replace 'framework' with the location of Penoaks Framework. /* * init() function sets up a basic framework instance and loads Composer classes. * The first argument sets the application directory. * The second argument (optional) sets the 'config' directory. Not defined (or null), will set it as 'config' under the application directory. */ $fw->init( __DIR__ ); /* * join() function takes over the current request and returns a response. * Be sure that no data was output before this, else problems could arise. */ $fw->join();
由于 Penoaks 框架独特的处理 webroot 的方式,framework
和 src
目录可以位于您的机器上任何可由 Apache 用户写入的位置。虽然不建议这样做,但也可以使用相同的框架安装为多个虚拟主机服务。如果您确实将 framework
和/或 src
目录与您的 webroot 一起保留,请确保使用各种在线方法禁止访问,这些方法可以通过简单的搜索找到。
示例应用程序可以在示例目录下找到。
Penoaks PHP 框架
Penoaks 框架是 Chiori-chan 简化框架的延续,称为 Chiori 框架。从 Laravel 分支,它是一个具有表达性和优雅语法的框架。Chiori-chan 添加的附加功能使框架更加强大和健壮。享受吧!
如果您在框架中寻找更多功能和持久性,请查看 Chiori-chan 的 Web 服务器。它用 Java 编写,具有易于理解的 API,并以 Groovy 作为脚本语言运行。
历史
几乎 7 年前,Joel Greene(又名 Chiori-chan)正在寻找一个简化但功能强大的框架来构建他的网络应用程序。当时的大多数框架要么提供他不需要的功能,要么有数英里长的文档要阅读才能开始,他转而自己编写。最近开始学习 PHP,包括对 PHP 的有限了解,他最终得到了他需要的框架。它具有插件、事件、易于使用的模板引擎、内置的用户和会话管理等功能。
但在Joel的版本中只有少数几个版本存在困境,PHP在持久性和确保每次请求所需代码量最小化方面存在很大缺陷。在最近开发了他的第一个Android应用程序后,他决定尝试Java。但让他失望的是,Java的简化网络开发(并且至今仍然是)非常罕见,市场上可用的开源项目需要一些广泛的XML、生命周期知识,最糟糕的是,使用了(非常沉重的)配置优于约定(Conventions over Configuration),这使得错误频发。此外,还有调试的缺乏以及Java需要始终编译的问题。在将他的框架迁移到Java并经历了很多试验和错误后,最大的难题是找到与PHP类似的脚本语言。Chiori-chan的Web服务器应运而生。它具有许多旧PHP框架的功能,以及更多功能,例如CSRF令牌、任务管理器(用于后台进程)、即时图像处理器、内置CSS和JS压缩、Groovy脚本语言(使用可扩展的脚本引擎)、基于节点的权限系统等等。
如今,Joel Greene和他的妻子Rachel共同拥有Penoaks Publishing Co.,并居住在密苏里州的堪萨斯城。最近,由于Penoaks的一个侧项目的需要,Joel尝试了Laravel框架后,决定重新启动维护PHP框架的想法。尽管发现Laravel在处理模型和错误方面存在问题,但他喜欢Laravel的其他方面,因此决定分支Laravel,从而诞生了Penoaks框架。
官方文档
该框架的文档可以在Penoaks网站上找到。
贡献
感谢您考虑为Penoaks框架做出贡献!完整的贡献指南仍在进行中,但您可以从分支和拉取请求开始。
安全漏洞
如果您在Penoaks中发现安全漏洞,请发送电子邮件到me@chiorichan.com给Chiori-chan。所有安全漏洞都将得到及时处理。
许可证
Penoaks框架是开源软件,许可协议为MIT许可证。