Overview & Change Log
Overview & Change Log
Nova Framework is a PHP 5.5+ MVC Framework. It's designed to be lightweight and modular, allowing developers to build better and easy to maintain code with PHP.
To this end Nova does not come with lots of built in libraries / helpers or modules instead, it's left to the user to decide what they want to implement, this allows freedom to design and build how you see fit.
The base framework however does come with a range of helper classes. New classes can easily be added at any stage of development.
This has been tested with php 5.6 and php 7 please report any bugs.
Routing images / js / css files
From within Templates your css/js and images must be in a Assets folder to be routed correctly. This applies to Modules as well, to have a css file from a Module the css file would be placed inside nova/app/Modules/ModuleName/Assets/css/file.css. Additionally there is an Assets folder in the root of nova this is for storing resources outside of templates that can still be routed from above the document root.
Router
Optional Parameters
New to 3.0 is allowing filters to be optional
Filters written like (:any) are required to match the route but writing a filter as (/(:any)) makes it optional.
This route supplied with Nova has one filter that is required then a further 3 optional filters. Multiple filters should be inside the first parenthesis.
Router::any('admin/(:any)(/(:any)(/(:any)(/(:any))))', 'App\Controllers\Demo@test');
Groups
New to 3.0 is groups routes can now placed in a group, this allows all routes within the group to inherit the group name.
Router::group('admin', function() {
Router::any('add', 'App\Controllers\Demo@cool');
Router::any('settings', 'App\Controllers\Demo@nice');
});
Is the equivalent to
Router::any('admin/add', 'App\Controllers\Admin@add');
Router::any('admin/settings', 'App\Controllers\Admin@settings');
Error Log
The error log is no longer a .html file but rather a log file. On a production server it should be outside the document root, in order to see the any errors there are a few options:
- Open app/logs/error.log
- OR open system/Core/Logger.php set $display to true to print errors to the screen
- set $emailError to true and setup the siteEmail const in app/Config.php this relies on an email server (not provided by the framework)
Namespace change
classes in app/Controller app/Model and app/Modules now have a namespace starting with App.
- App\Controllers
- App\Models
- App\Modules
That is only for classes within app, this is not needed for classes within system.
Aliases for helpers within views
Helpers can now be used without using a use statement, inside system/Core/Alias contains an array of helpers with their alias allowing helpers to be used directly.
Instead of doing:
use Helpers\Session;
Session::set('item', 'value');
it can become:
Session::set('item', 'value');
New / Updated Helpers / Methods
Url
resourcePath() The basic idea is to provide a lowercase version of the resource path for the resources located in Modules and the base assets folder. Then the following call:
$path = Url::resourcePath('FileManager');
will result into:
/modules/file_manager/assets/
With no parameters will return:
/assets/
Which correspond with the generic Assets directory.
detectUri()
Returns the current url.
templatePath() and relativeTemplatePath()
Now accepts 2 parameters:
- $custom - default to TEMPLATE which is the template being used
- $folder - folder to return from within the template defaults to Assets
Assets
The assets helper loads css and js files both methods have the following parameters:
- $files - a single file or array of file paths
- $cache - cache the output default to false, a minified file will be generated in the theme css/js folder.
- $refresh - update the cache default to false
- $cachedMins - time in seconds to keep the cache for defaults to 14400
Csrf
Updated makeToken() and isTokenValid() to require a name parameter, this allows using multiple times on a single page with unique names.
Data
create_key() has been renamed to createKey()
Form
Form::open by default created a hidden input with a token to be used for cross site request forgery checks (CSRF) if a name is passed to Form::open it's used as part of the token name.
Inflector
Inflector is a doctrine class to allow transforming file paths used within the Url helper.
JsMin
Minifies supplied js code
Request
get() method added.
ReservedWords
This class has a method getList which returns an array of reserved words include PHP 7's reserved words.
Response
This helper is primary used for routing, see the Response page for more details.
Overview & Change Log的更多相关文章
- 删除DSO Change Log表数据
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Commit message 和 Change log 编写指南
来源:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html Git 每次提交代码,都要写 Commit messa ...
- Git_学习_09_Commit message 和 Change log 编写指南
一.前言 二.Commit message编写 1.规范 2.用空行分开主题和正文 提交时只执行 git commit,这时就会跳出文本编辑器,让你写多行. git commit 主题和正文分开 每次 ...
- 【转】获取Jenkins构建时Git Change Log
原文:https://www.jianshu.com/p/513ab6915dbd 在基于Jenkins进行CI持续集成的工作,在构建后上传蒲公英时想将本次版本的git commit信息同步到蒲公英的 ...
- How To Change Log Rate Limiting In Linux
By default in Linux there are a few different mechanisms in place that may rate limit logging. These ...
- Jenkins 获取 Git 的提交记录(Change Log)
工作中用 Jenkins 做 iOS 和 Android 的持续集成,之前实现的是当 git 有新代码提交的时候,就会自动编译并上传安装包到蒲公英,然后自动发送QQ群通知或者讨论组通知给相关小伙伴,方 ...
- Managing IIS Log File Storage
Managing IIS Log File Storage You can manage the amount of server disk space that Internet Informa ...
- RAC Wait Event: gcs log flush sync 等待事件 转
RAC Wait Event: gcs log flush sync https://www.hhutzler.de/blog/rac-wait-event_gcs_log_flush_sync/#o ...
- Understanding postgresql.conf : log*
After loooong pause, adding next (well, second) post to the “series“. This time, I'd like to describ ...
随机推荐
- Linux Add a Swap File
http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/ Procedure To Add a Swap File Under Linux Y ...
- ADB Server Didn’t ACK ,failed to Start Daemon 解决方法
解决方法如下: 1.adb nodaemon server 查看不能执行的原因,输出: cannot bind ‘tcp:5037’ 2.定位到了是端口的问题!是5037端口被占用了! 3.netst ...
- 让你系统认识flume及安装和使用flume1.5传输数据到hadoop2.2
本文链接: http://www.aboutyun.com/thread-7949-1-1.html 问题导读:1.什么是flume?2.如何安装flume?3.flume的配置文件与其它软件有什么不 ...
- POJ3254 - Corn Fields(状态压缩DP)
题目大意 给定一个N*M大小的土地,土地有肥沃和贫瘠之分(每个单位土地用0,1来表示贫瘠和肥沃),要求你在肥沃的单位土地上种玉米,如果在某个单位土地上种了玉米,那么与它相邻的四个单位土地是不允许种玉米 ...
- Vmware Ubuntu 虚拟机下Android开发环境搭建
概况: 1.安装jdk: 2.安装adt-bundle: 1.安装jdk 先下载linux下的jdk,我下的是 jdk-7u13-linux-i586 :然后解压,为方便,建个文件夹--/home/x ...
- connect to a specific wifi network in Android programmatically
http://stackoverflow.com/questions/8818290/how-to-connect-to-a-specific-wifi-network-in-android-prog ...
- Memcached使用笔记
1.linux启动memcached命令 进入到memcached安装目录,可以用whereis memcached查看,默认安装在/usr/bin/目录下 输入以下命令,下面两行任选一行就可以了 m ...
- SQL2008-中不想插入从复记录
If not exists (SELECT ID FROM StuffAgitationYield where EMAgitation_ID=1 and YieldDateTime'2012-06-1 ...
- js调试工具Console命令详解
这篇文章主要介绍了js调试工具Console命令详解,需要的朋友可以参考下 一.显示信息的命令 复制代码 代码如下: < !DOCTYPE html> < html> &l ...
- jQuery语法总结及注意事项
1.关于页面元素的引用通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom ...