thinkphp5.1命令行操作
一、数据库迁移工具,先通过 composer 安装迁移工具
composer require topthink/think-migration
创建迁移类,首字母必须为大写
php think migrate:create Users
可以看到目录下有新文件 .\database\migrations\20161117144043_users.php
使用实例
<?phpuse 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、优化建议:
架构及开发过程优化建议:
- 路由尽量使用域名路由或者路由分组;
- 在路由中进行验证和权限判断;
- 合理规划数据表字段类型及索引;
- 结合业务逻辑使用数据缓存,减少数据库压力;
在应用完成部署之后,建议对应用进行相关优化,包括:
- 如果开发过程中开启了调试模式的话,关闭调试模式(参考调试模式);
- 通过命令行生成类库映射文件;
- 通过命令行生成配置缓存文件;
- 生成数据表字段缓存文件;
本文介绍如何在ThinkPHP 5.1中使用Composer安装并配置数据库迁移工具,实现数据库表结构的自动化管理。此外,还探讨了在开发过程中应注意的安全问题,包括上传功能的安全检查、公共方法的安全验证等。
522

被折叠的 条评论
为什么被折叠?



