//执行迁移 php artisan migrate //数据回滚 php artisan migrate:rollback //webpack生产 npm run production //发布webpack npm run dev //重建节点 npm rebuild node-sass //创建新表 php artisan make:migration create_表名_table --create=表名 //填充数据 php artisan db:seed //添加字段 php artisan make:migration add_添加信息_to_表名_table --table=表名 //创建控制器 php artisan make:controller 控制器复数Controller --resource //创建模块 php artisan make:model 模块 -m //创建视图 php artisan generate:view 文件夹.视图 //创建控制器模块数据库增删改查文件 php artisan generate:resource 表名 //查看路由 php artisan route //自动加载 composer dumpautoload //重置key php artisan key:generate
分类: 程序
wordpress FTP
使用FTP软件连接FTP空间,进入wp-content目录,新建tmp文件夹,设置文件夹的权限为777
下载:在FTP中返回网站根目录,找到wp-config.php这个PHP文件,下载到本地
修改:在wp-config.php中添加下列三行代码:
define(‘WP_TEMP_DIR’, ABSPATH.’wp-content/tmp’);/* WordPress的临时目录。*/
define(“FS_METHOD”, “direct”);
define(“FS_CHMOD_DIR”, 0777);
define(“FS_CHMOD_FILE”, 0777);
注意:要在定义ABSPATH的后面,即在它的后面添加
if ( !defined(‘ABSPATH’) )
define(‘ABSPATH’, dirname(__FILE__) . ‘/’);
================================
最后的代码应该是:
if ( !defined(‘ABSPATH’) )
define(‘ABSPATH’, dirname(__FILE__) . ‘/’);
define(‘WP_TEMP_DIR’, ABSPATH.’wp-content/tmp’);
define(“FS_METHOD”, “direct”);
define(“FS_CHMOD_DIR”, 0777);
define(“FS_CHMOD_FILE”, 0777);
彻底解决wordpress安装主题或插件需要FTP问题
上传:上传覆盖wp-config.php文件
设置wp-content目录中的plugins(插件)和themes(主题)文件夹权限为777。
至此,你的插件和主题已经可以自动更新了。
此为终极解决办法,其它都为阉割版本。
为了安全,应在.htaccess中把 tmp、themes、plugin 这些读写权限为777的文件夹,设置为没有执行权限。
WordPress多域名绑定方法
有时候想,如果wordpress能像discuz论坛一样,能用其他域名或IP访问同一网站而且打开帖子就好了。我在本地装了wordpress,而且绑定了域名,有网络的时候可以用域名访问和使用网站,但是没网络的时候想用IP访问使用却不能。比如我用192.168.1.2访问本地的网站是可以的,但是wordpress的后台已经设置的网址是abc.com,所以没网络的时候,不能打开文章,因为它的网址还是abc.com/123.html的格式,不是192.168.1.2/123.html格式。这一点就比不上discuz,因为discuz两者都可以访问和使用网站。
从网上收到了一个好方法,让wordpress也像discuz一样,可以多域名或IP访问使用同一网站。在网站根目录找到wp-config.php 文件,在文件里找代码 require_once(ABSPATH . ‘wp-settings.php’); 在其上面添加以下代码(一定要在这段代码的上面,不然无法读取CSS样式、图片等等。):
$home = ‘http://’.$_SERVER[‘HTTP_HOST’];
$siteurl = ‘http://’.$_SERVER[‘HTTP_HOST’];
define(‘WP_HOME’, $home);
define(‘WP_SITEURL’, $siteurl);
我们知道,PHP 中的 $_SERVER[‘HTTP_HOST’] 用于获得来路域名。这样,就能根据来路为 WP_HOME 和 WP_SITEURL 变量赋值,实现 WordPress 多域名绑定。
注意:为防止域名改变而造成图片不可用,必须在控制面板的“设置 (Settings) – 媒体 (Media)”里将“文件的完整 URL 地址”设为 “wp-content/uploads”(与“默认上传路径”参数相同)。如果你在固定链接里设置了非默认的其他项,在“文件的完整 URL 地址”添加 “wp-content/uploads”会使图片链接不对。
laravel 项目迁移
git clone https://github.com/
cp -f .env.example .env
vi .env
chmod -R 777 bootstrap/cache
chmod -R 777 storage
composer dumpautoload
composer update
php artisan key:generate
laravel error mysql 5.5.55
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
oo long; max key length is 767 bytes (SQL: alter table `users` add unique `
users_email_unique`(`email`))
use Illuminate\Support\Facades\Schema; public function boot() { // Schema::defaultStringLength(191); }
laravel npm run dev error
错误:SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
node版本低,node5.0在文件第一行加 ”use strict”,或者更新node
brew upgrade node#更新node
curl -sL https://deb.nodesource.com/setup_6.x | bash –
apt-get install nodejs
错误:cross-env NODE_ENV=development webpack –watch –progress –hide-modules –config=node_modules/laravel-mix/setup/webpack.config.js
npm rebuild node-sass
npm run dev#successfully
PHP中spl_autoload_register函数的用法
spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明 bool spl_autoload_register ([ callback $autoload_function ] ) 将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为 spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或 spl_autoload_call()。 参数 autoload_function 欲注册的自动装载函数。如果没有提供任何参数,则自动注册autoload的默认实现函数 spl_autoload()。 返回值 如果成功则返回 TRUE,失败则返回 FALSE。 注:SPL是Standard PHP Library(标准PHP库)的缩写。它是PHP5引入的一个扩展库,其主要功能包括autoload机制的实现及包括各种Iterator接口或类。 SPL autoload机制的实现是通过将函数指针autoload_func指向自己实现的具有自动装载功能的函数来实现的。SPL有两个不同的函数 spl_autoload, spl_autoload_call,通过将autoload_func指向这两个不同的函数地址来实现不同的自动加载机制。 范例 设我们有一个类文件A.php,里面定义了一个名字为A的类: view plaincopy to clipboardprint? <?php class A { public function __construct() { echo 'Got it.'; } } 然后我们有一个index.php需要用到这个类A,常规的写法就是 view plaincopy to clipboardprint? <?php require('A.php'); $a = new A(); 但是有一个问题就是,假如我们的index.php需要包含的不只是类A,而是需要很多类,这样子就必须写很多行require语句,有时候也会让人觉得不爽。 不过在php5之后的版本,我们就不再需要这样做了。在php5中,试图使用尚未定义的类时会自动调用__autoload函数,所以我们可以通过编写__autoload函数来让php自动加载类,而不必写一个长长的包含文件列表。 例如在上面那个例子中,index.php可以这样写: view plaincopy to clipboardprint? <?php function __autoload($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } $a = new A(); 当然上面只是最简单的示范,__autoload只是去include_path寻找类文件并加载,我们可以根据自己的需要定义__autoload加载类的规则。 此外,假如我们不想自动加载的时候调用__autoload,而是调用我们自己的函数(或者类方法),我们可以使用spl_autoload_register来注册我们自己的autoload函数。它的函数原型如下: bool spl_autoload_register ( [callback $autoload_function] ) 我们继续改写上面那个例子: view plaincopy to clipboardprint? <?php function loader($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register('loader'); $a = new A(); 这样子也是可以正常运行的,这时候php在寻找类的时候就没有调用__autoload而是调用我们自己定义的函数loader了。同样的道理,下面这种写法也是可以的: view plaincopy to clipboardprint? <?php class Loader { public static function loadClass($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } } spl_autoload_register(array('Loader', 'loadClass')); $a = new A();
swift语言coredata第三方库MagicalRecord最简洁教程
pod ‘MagicalRecord’安装MagicalRecord
/*************************以下为教程****************************/
AppDelegate.swift
import MagicalRecord
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. MagicalRecord.setupCoreDataStack()//只加这句话初始化 return true }
ViewController.swift
import MagicalRecord
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. /*创建*/ let admin = Admin.MR_createEntity()//创建 admin?.token = "1234"//编辑 print("创建") NSManagedObjectContext.MR_defaultContext().MR_saveToPersistentStoreAndWait()//保存 /*创建结束*/ /*查询*/ let admins = Admin.MR_findAll()//查询 for a in admins as! [Admin]{ print(a.token) a.token = "liuman"//编辑 //a.MR_deleteEntity()//删除 } print("条件查询token值为liuman的") let liuman = Admin.MR_findFirstByAttribute("token", withValue: "liuman") print(liuman!.token) /*查询结束*/ //Admin.MR_truncateAll()//删除所有 NSManagedObjectContext.MR_defaultContext().MR_saveToPersistentStoreAndWait()//创建编辑删除之后都要保存,原save方法,被取代了。 //MagicalRecord.cleanUp()//app退出前操作,关闭coredata }
coredata:CRED
import CoreData //添加数据 func saveCoreDate(){ //加载AppDelegate let app = UIApplication.sharedApplication().delegate as! AppDelegate //获取管理的上下文 let context = app.managedObjectContext var error:NSError? //创建一个实例并给属性赋值 let admin = NSEntityDescription.insertNewObjectForEntityForName("Admin", inManagedObjectContext: context) as! Admin admin.token = "1" //保存数据 do { try context.save() print("success!") }catch let error{ print("context can't save!, Error:\(error)") } } func fetchCoreData (){ //加载AppDelegate let app = UIApplication.sharedApplication().delegate as! AppDelegate //获取管理的上下文 let context = app.managedObjectContext // 声明数据请求实体 let fetchRequest = NSFetchRequest(entityName: "Admin") let predicate = NSPredicate(format:"token='1'") //fetchRequest.predicate=predicate//设置查询条件按照id查找不设置查询条件,则默认全部查找 //执行查询操作 do { let list = try context.executeFetchRequest(fetchRequest) as! [NSManagedObject] print("打印查询结果") for i in list as! [Admin] { print(i) //修改操作:将查询到的结果修改后,再调用context.save()保存即可 i.token = "1" //删除操作:将查询到的额结果删除后,再调用context.save()保存即可 context.deleteObject(i) } }catch let error{ print("context can't fetch!, Error:\(error)") } do { try context.save() print("success!") }catch let error{ print("context can't save!, Error:\(error)") } }
swift时间
时间差
NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!.components(NSCalendarUnit.NSYearCalendarUnit, fromDate: date.date, toDate: NSDate(), options: NSCalendarOptions(rawValue: 0)).year//与今年相差年数