随笔分类 - 后台技术
php,java,liunx,node等后台方面的技术
摘要:节省时间与精力,更高效地打造稳定可靠的Web项目:基于Go语言和Gin框架的完善Web项目骨架。无需从零开始,直接利用这个骨架,快速搭建一个功能齐全、性能优异的Web应用。充分发挥Go语言和Gin框架的优势,轻松处理高并发、大流量的请求。构建可扩展性强、易于维护的代码架构,保证项目的长期稳定运行。同
阅读全文
摘要:### 什么是 Kubernetes 对象? 在k8s中管理员与平台交互的最重要方式之一就是创建和管理 `Kubernetes 对象`,对象有助于帮助用户部署应用程序和维护集群。 理解 `Kubernetes 对象`的另一种方法是将它们视为`类实例`。每个创建的对象都引用一个预定义的类,该类告诉 `
阅读全文
摘要:### 序 Golang 中的结构或 struct 是用户定义的类型,允许将可能不同类型的项分组/组合为单一类型。 可以说是一个不支持继承但支持组合的轻量级类。 我们使用 Golang 编写代码的时候,你肯定使用过`struct`。 但是,你可能不知道的是,通过简单地重新排序结构中的字段,可以极大地
阅读全文
摘要:在`Docker Desktop`里面直接去安装启用`Kubernetes`会一直处在`Starting...`状态中,这是因为镜像默认是从Kubernetes提供的官方地址下载,该地址在国内是被墙的,如果你没有类似Vpn的FQ工具的话,可以通过下面这种方式更快一点。 ### 准备好安装镜像 镜像地
阅读全文
摘要:### 介绍 在平时做项目得时候,经常会看到很多包里面定义了结构体。 e.g. 在`context`包里面`Context`接口中的`Done()`方法,`Done()`返回一个是以空结构体定义数据的通道`chan struct{}`,那这里他是有什么特殊用意吗?我们接下来分析`struct{}`的
阅读全文
摘要:### 序 前面介绍了k8s组件和对象的一些基本概念,了解了k8s具体是做什么的以及架构,那么接下来我们开始介绍怎么去安装k8s,这里我们以windows为例,其他平台可以参考Kubernetes官方文档,其实安装方式都是类似的。 ### 先决条件 要在系统中安装 Kubernetes,以下是一些需
阅读全文
摘要:### 序 上一篇我们介绍了 k8s 的基本架构,我们在这篇文章将介绍 `Kubernetes` 关键组件和概念。 还是先来一张图: ![1_2pdatNn7KzcQZpc8cOALOQ.webp][1] 根据上图我们分别对`Deployment`、`ReplicaSet`、`Pod`详细的介绍,其
阅读全文
摘要:
### Kubernetes 概述 当下,我们很多项目于都在`Cloud Native`(云原生)的上面,这种方法旨在使组织能够确保可用性并快速响应和适应变化,云原生其实就是一组本质上支持在不同云环境(公共云、私有云或混合云)上大规模构建、运行和管理应用程序的实践和技术。 云原生离不开两个概念:`容
阅读全文

摘要:当资源资源第一次被访问的时候,http status返回200,在头部携带当前资源的描述信息,eg:
最后修改的时间:```Last-Modified```
资源状态唯一标识:```Etag```
资源在客户端缓存的过期时间:```Expires```
同时浏览器会将资源缓存到cache目录,并保存文件描述信息。
当客户端第二次请求资源时,会先检查cache目录中是否含有该资源,如果有,并且还没到Expires设置的时间,
即文件还没有过期,那么此时客户端将直接从Cache目录中读取文件,而不再发送请求
如果资源已经过期,客户端会发送一次http请求到服务器,同时在header携带上次修改的时间:
```text
If-Modified-Since Thu, 26 Nov 2009 13:50:19 GMT
If-None-Match "8fb8b-14-4794674acdcc0"
```
####为什么会返回上一次的信息呢?
web服务器在接收到请求时,会先解析header里面的信息,然后校验头部信息。
如果该资源文件从上次时
阅读全文
摘要:const: 定义常量,一般定义后不可改变
static: 静态,类名可以访问
public: 表示全局,类内部外部子类都可以访问;
private: 表示私有的,只有本类内部可以使用;
protected: 表示受保护的,只有本类或子类或父类中可以访问;
定义常量也可用```define```定义。
const与define在定义常量时会有如下区别:
1. const用于类成员变量,一经定义不可修改,define用于全局常量,不可用于类成员变量的定义,
const可在类中使用,define不能。
2. const定义的常量大小写敏感,而define可通过第三个参数(为TRUE表示大小写不敏感)来指定大小写是否敏感。
在运行时定义一个常量。define('TXE',100,TRUE);
3. const不能在条件语句中定义常量,而define函数可以。if($a>10){define('LE','hello');}
class Demo
{
//定义常量【自php5.3后】,一个常量是属于一个类的,而不是某个对象的
//不可改变的
const E
阅读全文
摘要:上一篇讲到php可以通过接口是实现代码的复用。
那么这篇文章简单介绍下使用_call实现代码的复用。
_call:php的一个魔术方法,当调用类中不存在的method时,会自动调用_call.
示例代码:
class One{
function method_1(){
echo '11';
}
function method_2(){
echo '22';
}
}
class Two{
function method_3(){
echo '33';
}
function method_4(){
echo '44';
}
}
class StaticDemo{
protected $Class = array();
public function __construct(array $class = array()){
$this->Class = $class;
阅读全文
摘要:call_user_func:把一个参数作为回调函数调用
用法说明:
```php
call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) : mixed
```
参数说明:
第一个参数$callback作为回调函数,其它参数都是回调函数的参数。
$parameter:传入回调$callback函数的参数,这里的参数注意不能引用传递。
下面简单例子分别说明了在不同情况下使用call_user_func:
```php
//先引用,后执行
function _call($call){
echo $call++.'';
echo $call++.'';
return $call;
}
$rs = call_user_func('_call',1);
var_dump($rs);
//结果
//1
//2
//int(3)
```
先执行,后引用
```php
$arg = 1;
call_user_func(function ($call
阅读全文
摘要:原文地址:http://small.aiweimeng.top/index.php/archives/51.html
在上篇文章中写到php可以使用```Trait```实现代码的复用,
下面介绍使用接口的多继承特性实现代码的复用;
示例代码:
header("Content-type:text/html;charset=utf8");
interface TestOne{
function test_one();
}
interface TestTwo{
function test_two($name);
}
//接口间多继承使用,隔开
interface TestThree extends TestOne,TestTwo{
function test_three($name);
}
class World implements TestThree
{
function test_one()
{
// TODO: Implement test_one() method.
echo '使用
阅读全文
摘要:PHP没有多继承的特性。即使是一门支持多继承的编程语言,我们也很少会使用这个特性。在大多数人看来,多继承不是一种好的设计方法。
但是开发中用到多继承该怎么办呢?
下面介绍一下使用```trait```来实现php中多继承的问题。
自PHP5.4开始,php实现了代码复用的方法```trait```语法。
Trait是为PHP的单继承语言而准备的一种代码复用机制。为了减少单继承的限制,是开发在不同结构层次上去复用method,
Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题。
阅读全文
摘要:1. __set(),__get(),__isset(),__unset()可以归之为一类,适用于私有变量的设置、取值、判断、删除的操作。
2. __construct()构造函数,__desctruct()析构函数,实例化类的时候就会产生,有一点不同,构造在最前面,
析构函数在最后面
3. 当调用class中没有定义的方法时,会报错fail error,如果class中定义了__call(),会直接调用__call()方法进行操作。
例如:$class->success('data');类中的__call方法开始执行把参数转换为数组形式array([0] => 'data');
__callStatic()方法同理,只是对没有定义的静态方法起作用。
阅读全文
摘要:tp5项目在nginx中默认是不支持pathinfo的,那么我们怎么配置呢?
先看下面的问题,我们按照正常的流程配置好域名后,指向public目录,重启nginx,访问时候路径报错,出现500。
解决办法:
在fastcgi.conf文件里面我们会看到如下:
阅读全文
摘要:在一些app,web中评论以及一些文章会看到一些*等,除了特定的不显示外,我们会把用户输入的一些敏感字符做处理,具体显示为*还是其他字符按照业务区实现。
下面简单介绍下业务处理。
阅读全文
摘要:有时我们在请求数据接口时,会看到控制台中出现如下错误信息:
XMLHttpRequest cannot load http://server.runoob.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested
resource.Origin 'http://client.runoob.com' is therefore not allowed access.
这句话意思说不能请求到资源;
如果客户端请求其他服务器的资源时我们设置一下跨域;下面演示设置:
1.用php的方法在脚本中添加如下代码:
//允许单个域名访问
阅读全文
摘要:我们在开发项目中会经常用到第三方的类库插件,但是如果每次需要使用的时候都会在代码的某一处去引入,然后在实例化,这样做感觉很不方便,那么怎么实现自动加载呢,下面简单介绍使用composer实现自动加载:
原文地址:小时刻个人博客>http://small.aiweimeng.top/index.php/archives/11.html
1.首先需要安装composer
安装地址(中国镜像): https://pkg.phpcomposer.com/#how-to-install-composer
根据它的说明一步一步进行安装
2.安装好composer以后创建一个工作目录,eg:work
3.在项目目录根目录下建立一个composer.json文件,格式如下:(注意必须为空的json格式文件)
阅读全文
摘要:项目开发中经常会遇到用户在评论或者发表文章的时候会打一些表情在里面,如果我们在开发中不去做一些处理的话,表情会出不来的,甚至是报错,下面简单介绍处理方式.
项目中评论或者文章中写入表情符号时,php报错,或者出来时一些????。这是为什么呢?
下面说一下mysql中的字符集:
mysql数据库表用的utf-8字符集也就是3字节,但emoji表情是4字节,导致无法insert.
怎么让mysql支持Emoij表情呢?
阅读全文