小程序 公众号 等多端开发 nodejs框架
pm2 为nodejs 进程管理器 为某个nodejs进程提供守护进程功能
npm install -g pm2 全局安装
pm2 start app.js 替代 node app.js 以守护进程启动app.js
pm2 start app.js –name wb123 以守护进程启动app.js 并命名为wb123
pm2 start bin/www –watch 以守护进程启动bin/www 并监控文件变化自动重启
pm2 restart wb123 重启wb123服务
pm2 stop wb123 停止服务 pm2 stop all 停止所有
pm2 delete www 删除www服务 pm2 delete all 删除所有
pm2 list 查看所有进程
pm2 monit 查看进程内存等
pm2 -h 查看命令详细
pm2 启动其他进程 在当前文件写下一个 xxx.json的脚本
pm2 start xxx.json 执行
脚本内容如下
{
"name": "应用进程名称",
"args": "传递给脚本的参数",
"script": "启动的脚本路径",
"exec_interpreter": "指定的脚本解释器",
"exec_mode": "fork",
"max_memory_restart": "100M",
//其它参数
"watch": [ // 监控变化的目录,一旦变化,自动重启
"bin",
"routers"
],
"ignore_watch" : [ // 从监控目录中排除
"node_modules",
"logs",
"public"
],
"watch_options": {
"followSymlinks": false
},
"error_file" : "./logs/app-err.log", // 错误日志路径
"out_file" : "./logs/app-out.log", // 普通日志路径
"env": {
"NODE_ENV": "production" // 环境参数,当前指定为生产环境
}
}
php脚本
{
"name": "php-socket",
"args": "",
"script": "./include/Socket.php",
"exec_interpreter": "php.exe",
"exec_mode": "fork",
"max_memory_restart": "100M"
}
java jar包
{
"name": "my-server",
"script": "/usr/bin/java",
"args": [
"-jar",
"server.jar"
],
"exec_interpreter": "",
"exec_mode": "fork"
}
{
"name": "yhtAdmin",
"script": "java",
"args": [
"-jar",
"background-0.0.1-SNAPSHOT.jar"
],
"error_file":"./log/err.log",
"out_file":"./log/out.log",
"exec_interpreter": "",
"exec_mode": "fork"
}
carbon php 日期操作
laravel Eloquent 中自动把 datetime数据格式化为字符串 yyyy-MM-ddTHH:ii:ss:SSSSz
需要使用 Carbon::parse($value) 反序列化字符串为日期 再执行format(‘Y-M-d H:i:S’) 输出
Carbon 是 一个php的日期处理库
php 拼接
'/admin/doctors/'.strval($appointment->doctor->id)
. 连接字符串
php 字符串转换 转换为字符串
strval($appointment->doctor->id)
php 标准输出输入流
因为php默认的输入流就是请求 默认的输出流就是响应 当我们需要再控制台打印数据该如何办呢?
$fp = fopen("php://stdout", 'a');
fputs($fp, "hello\n");
有几个php://的流位php辅助的流
上图为控制台输出
php://stderr位控制台异常流
php://stdin为控制台输入流
Laravel-Admin
https://laravel-admin.org laravel-admin 文档
类似于ruby on rails (grails) laravel-admin 具有大量代码生成命令,(本身就是laravel的特性)代码区分 model controller view
然而view是由具体php类(继承自renderable)来定义的 高内聚 却 提高了门槛
这个是laravel-admin最大的特点舍弃了编辑html的机会(不用blade模板),用纯php代码书写视图(放弃了灵活性,但提高了效率,类似于extjs 用js把html封装成component对象 其渲染的核心方法也是render 接口是)
创建控制器 UserController 微控制器名称 –model指定数据库对象
php artisan admin:make UserController --model=App\User
初始化laravel-admin 会执行数据库初始化 并且 把laravel-admin的初始化文件 复制到 laravel下面
php artisan admin:install
自动生成 数据库表对象
php artisan make:model XXX
view组件:
Grid 的使用
$grid = new Grid(new Appointment());
$grid->model()->where('status', 1)->orderBy('created_at','desc');
php artisan
该命令是laravel下的项目命令
其实是用php执行项目下的artisan文件(php文件)
该文件会接受参数(通过$argv获取,$argc显示参数个数)
PHP变量以$
字符串模板 : $temp = “Hello , {$var1} !”;
if语法:(注:是 elseif 不是else if)
if(true){
}elseif(false){
}else{
}
while语法:
while(true){
}
数组语法:
array(key=>value,key=>value)
[key=>value,key=>value] //映射类数组
[value1,value2] //顺序类数组
count($array) //返回数组长度
数组迭代:
foreach($array as $key => $value){
}
foreach ($array as $value){
}
函数:
function($variable){
return $value
}
模块: 通过require引入某个文件 通过use 引入命名空间
require “another.php”
use “/Robin/luo/Another”
类:
class Another {
public $property
public function __construct($property){
this->property = $property;
}
public function func($param){
return $value;
}
public static function func1(){
}
}
$object = new Another();
$object1 = new Another(1);
$object->property = 1;
$object->func(1);
Another::func1();
命名空间:通过namespace 定义 用\进行解析不是java的.
namespace Robin;
\Robin\luo::reading();
https://www.iconfont.cn/ 阿里图标库地址
一次写码,多端运行的框架
