分类 计算机相关 下的文章

PHP和包

包由一组相关的类以某种方式组合而成,可以用于隔离系统中的各个部分。有些编程语言可以识别出包,并为它们提供不同的命名空间。虽然PHP没有原生的包概念,但它自PHP5.3起引入了命名空间。

继承就是从基类中派生出一个或多个类的机制。如果一个类继承自另外一个类,那么就说前者是后者的子类。这种关系通常用父子关系来形容。子类派生自父类并继承了父类的特性,这些特性既包括属性也包括方法。通常,子类都会在父类(也被称为超类)所提供功能的基础上加入一些新功能。因此,也可以说子类扩展了父类。

类型决定了PHP脚本管理数据的方式,例如,使用字符串显示字符数据或使用字符串函数操作字符数据、在数学表达式中使用整数、在条件表达式中使用布尔类型等。这些类型被称为基本类型。

对象和类

<?php
// 类是用于生成一个或多个对象的代码模板
// 使用 class 关键字和任意类名来声明 
// 类名可以是任意字母和数字 但是不能以数学开头
class ShopProduct
{
    // 类本体
    // 尽管ShopProduct类没有任何用处 但是它已经是一个合法的类了
}

// 一个(或两个)对象
// 既然类是对象生成的模板 那么接下来就创建对象了

// 创建对象 就是实例化 类
$product1 = new ShopProduct();
$product2 = new ShopProduct();

// 尽管 product1 product2 在功能上对等的(都是空的) 但是它们是由同一个类创建的,具有相同类型的不同对象
var_dump($product1);
var_dump($product2);

其实再PHP中,闭包和匿名函数是同一样东西。
另外,经常在匿名函数的使用中出现use关键字,对于这个很不理解,所以在网上搜索了一下。

因为ThinkPHP官方已经升级到6了,所以你直接下载的源码是6的,所以不能直接下载

命名空间

在ThinkPHP中接触到了一个新的概念,命名空间(namespaces),这个概念在PHP的CI框架中是没有的,看来CI框架确实简化了,不愧是被人嘲笑“玩具”框架,但是我倒是觉得CI本身就是奔着轻量级去的,你拿“玩具”来当工具使,本身就有问题啊。

MySQL导入导出数据

导出数据

# 导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump  -u[username] -p[password] --opt name_db > /backup/databases/name_db.sql.`date +"%Y-%m-%d-%H-%M-%S"`

# 导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u dbuser -p dbname users> /backup/databases/dbname_users.sql.`date +"%Y-%m-%d-%H-%M-%S"`

# 导出一个数据库结构
mysqldump -u dbuser -p -d --add-drop-table dbname > d:/dbname_db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
# -d 没有数据 
# --add-drop-table 在每个create语句之前增加一个drop table

在使用Git的过程中,有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。简单来说一个场景:在你使用git add .的时候,遇到了把你不想提交的文件也添加到了缓存中去的情况,比如项目的本地配置信息,如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突,所以这样的个性化配置文件我们一般不把它推送到git服务器中,但是又为了偷懒每次添加缓存的时候都想用git add .而不是手动一个一个文件添加,该怎么办呢?很简单,git为我们提供了一个.gitignore文件,只要在这个文件中声明哪些文件你不希望添加到git中去,这样当你使用git add .的时候这些文件就会被自动忽略掉。

之前使用了php-console来打印变量,但是在使用过程中有时无法打印输出,或者有一定的局限。但是var_dump作为php中一个强大的调试函数,体验更好。

sudo的安全策略:阻止/允许用户执行特定命令

#新建用户
#按照提示操作
adduser shi

#安装sudo
apt-get update
apt-get install sudo -y

#配置sudo
#在/etc/sudoers.d/目录下建立与用户同名的策略文件
visudo -f /etc/sudoers.d/shi #其中“shi”为测试建立的用户名

#比如,我们期望用户test 可以以管理员权限执行/usr/bin、/bin下的所有命令,但是不能修改其他用户密码以及kill其他用户进程,可以配置如下
shi ALL=/usr/bin/, !/usr/bin/passwd, /bin/, !/bin/kill

#保存