thinkphp5.1命令行操作
一、数据库迁移工具,先通过 composer 安装迁移工具
composer require topthink/think-migration
创建迁移类,首字母必须为大写
php think migrate:create Users
可以看到目录下有新文件 .\database\migrations\20161117144043_users.php
使用实例
<?php
use Phinx\Migration\AbstractMigration;
class Users extends AbstractMigration
{
/**
* Change Method.
*/
public function change()
{
// create the table
$table = $this->table('users',array('engine'=>'MyISAM'));
$table->addColumn('username', 'string',array('limit' => 15,'default'=>'','comment'=>'用户名,登陆使用'))
->addColumn('password', 'string',array('limit' => 32,'default'=>md5('123456'),'comment'=>'用户密码'))
->addColumn('login_status', 'boolean',array('limit' => 1,'default'=>0,'comment'=>'登陆状态'))
->addColumn('login_code', 'string',array('limit' => 32,'default'=>0,'comment'=>'排他性登陆标识'))
->addColumn('last_login_ip', 'integer',array('limit' => 11,'default'=>0,'comment'=>'最后登录IP'))
->addColumn('last_login_time', 'datetime',array('default'=>0,'comment'=>'最后登录时间'))
->addColumn('is_delete', 'boolean',array('limit' => 1,'default'=>0,'comment'=>'删除状态,1已删除'))
->addIndex(array('username'), array('unique' => true))
->create();
}
/**
* Migrate Up.
*/
public function up()
{
}
/**
* Migrate Down.
*/
public function down()
{
}
}
这一点和 laravel 框架使用有很大相同之处,可以说thinkphp5.1 借鉴的很多 laravel 的思想
二、安全问题
1、上传
网站的上传功能也是一个非常容易被攻击的入口,所以对上传功能的安全检查是尤其必要的。
系统的think\File
提供了文件上传的安全支持,包括对文件后缀、文件类型、文件大小以及上传图片文件的合法性检查,确保你已经在上传操作中启用了这些合法性检查。
2、安全建议
- 对所有公共的操作方法做必要的安全检查,防止用户通过URL直接调用;
- 不要缓存需要用户认证的页面;
- 对用户的上传文件,做必要的安全检查,例如上传路径和非法格式;
- 对于项目进行充分的测试,不要生成业务逻辑的安全隐患(这可能是最大的安全问题);
- 最后一点,做好服务器的安全防护,安全问题的关键其实是找到你的最薄弱环节;
3、优化建议:
架构及开发过程优化建议:
- 路由尽量使用域名路由或者路由分组;
- 在路由中进行验证和权限判断;
- 合理规划数据表字段类型及索引;
- 结合业务逻辑使用数据缓存,减少数据库压力;
在应用完成部署之后,建议对应用进行相关优化,包括:
- 如果开发过程中开启了调试模式的话,关闭调试模式(参考调试模式);
- 通过命令行生成类库映射文件;
- 通过命令行生成配置缓存文件;
- 生成数据表字段缓存文件;