封装全局公共函数:
调用自己的对象类:
[外链图片转存失败(img-xc4V6f5C-1564133067794)(https://cdn.learnku.com/uploads/images/201907/06/42342/eBtFd0V0yI.png!large)]
在app/Services/写自己封装的类:
在其它控制器里,use App\Services\UserGitsLogic;直接调用
指向该控制器行为的路由:
Route::get(‘user/{id}’, ‘控制器名Controller@方法’);
单个行为路由:
注册单个行为控制器的路由时,不需要指定方法
Route::get(‘user/{id}’, ‘控制器名’);
日志存储:
Laravel 支持 single
、daily
、 syslog
和 errorlog
四种日志写入模式。通过修改 config/app.php
配置文件中的 log
选项来配置 Laravel 使用的存储机制。如果你希望每天产生日志都存放在不同的文件中,则应将 app
配置文件中的 log
值设置为 daily
log_max_files
=>最大存储日志数量(不配置默认5天的日志文件)
Routes
目录routes
目录包含了应用的所有路由定义,Laravel 默认包含了几个路由文件:web.php
、api.php
、 console.php
和 channels.php
。
1,下载composer-Setup.exe,官网下载地址:https://getcomposer.org/download/
2,在PHP目录下,打开的php.ini文件,开启OpenSSL的扩展。去掉延长= php_openssl.dll前面的分号,就是打开注释。
3,composer global require laravel/installer命令,安装 Laravel 安装器,在命令行执行该命令即可(如果已经安装过,会自动进行更新)
4,安装完成后,通过 laravel new [项目名称] 来创建新的 Laravel 项目
5,安装完成后,我们来看一下新安装 Laravel 项目 的目录结构
6,打开CMD,输入:composer,回车
7,最后Windows上运行
[外链图片转存失败(img-VPH2C6NS-1564133067800)(https://cdn.learnku.com/uploads/images/201906/25/42342/kC2LRZKnO8.png!large)]
完!
用该命令跳过laravel的PHP版本:composer install --ignore-platform-reqs
laravel项目里, 网页打不开,显示404 Not Found ——nginx/1.0.6—\nginx\conf\nginx.conf
try_files u r i / / i n d e x . p h p ? uri/ /index.php? uri//index.php?query_string;
\nginx\conf\vhost.conf 隐藏 index.php入口文件
location / {
if (!-e KaTeX parse error: Expected '}', got 'EOF' at end of input: … rewrite ^(.*) /index.php?s=/$1 last;
break;
}
}
或
我用的这种
location / {
index index.php index.html index.htm;
if (-e $request_filename) {
break;
}
if (!-e KaTeX parse error: Expected '}', got 'EOF' at end of input: … rewrite ^/(.*) /index.php/$1 last;
break;
}
}
PHPstorm 的Ctrl+斜线失效
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan passport:install
OAUTH_GRANT_TYPE=password
OAUTH_CLIENT_ID=1
OAUTH_CLIENT_SECRET=1XHTUfLbkugZpIiesobAIn5BOlvxsRawhc1ctAbC
OAUTH_SCOPE=*
routes/Platform/V1.php
Route::namespace(‘ShopEM\Http\Controllers\Platform\V1’)->middleware(‘auth:api’)->group(function () {
改成 Route::namespace(‘ShopEM\Http\Controllers\Platform\V1’)->group(function () { 去掉中间件
1,在.env设置数据库名
2,用php artisan make:model Models/TradeTrade -m 命令创建Model和表字段
php artisan migrate:refresh --seed PHP工匠数据表全部迁移
php artisan migrate 只迁移新表
php artisan make:migrate add_item_to_users_table --table=users 添加字段
新增表字段:php artisan make:migration add_字段_to_表名_table --table=表名
修改表字段
1.创建一个新的migration文件
php artisan make:migration modify_age_column_in_tests_table --table=tests
2.编辑新建的modify_age文件
3.使用命令提交
php artisan migrate
新建模型的方法:
输入命令php artisan make:model Project (新建一张模型表,新建的model在app文件夹下)
php artisan make:model Project -m(创建模型,并生成迁移文件,如果不加-m,
还可以通过php artisan make:migration,生成迁移文件)
数据表的迁移:
php artisan migrate:status # 查看数据表的迁移状态
php artisan make:migration # 生成migrations迁移文件
php artisan migrate # 将database/migrations下的文件迁移到数据库,生成对应的表
php artisan migrate:rollback # 撤销上一步的migrate迁移操作
开发过程中更改数据结构(不rollback,不删除数据库的原始数据)
新建一个migration文件,projects进行操作
php artisan make:migration 对表更改的描述 --table=projects(指定哪一张表)
php artisan migrate 映射到数据库
php artisan migrate:refresh 撤回所有的操作,重新编译映射
命令列表:php artisan
清除缓存:
php artisan route:clear
php artisan view:clear
php artisan cache:clear 服务器或者本地清除缓存
发布资源命令:
```
php artisan vendor:publish --provider=“Maatwebsite\Excel\ExcelServiceProvider”
本地跑laravel的定时任务:
命令行命令 php artisan schedule:run
极光推送发货信息到app
class SendGoodsPushInfoController extends Controller\
{\
//文档见:http://docs.jpush.cn/display/dev/Push-API-v3\
private $app_key = ''; //待发送的应用程序(appKey),只能填一个。\
private $master_secret = ''; //主密码\
private $url = "https://api.jpush.cn/v3/push"; //推送的地址\
\
\
/* alias=>array('93d78b73611d886a74*****88497f501','606d05090896228f66ae10d1*****310');\ registration_id(1000)注册ID设备标识(并集): registration_id=>array('20effc071de0b45c1a**********2824746e1ff2001bd80308a467d800bed39e');\ */\ //$content 推送的内容。\ //$m_type 推送附加字段的类型(可不填) http,tips,chat....\ //$m_txt 推送附加字段的类型对应的内容(可不填) 可能是url,可能是一段文字。\ //$m_time 保存离线时间的秒数默认为一天(可不传)单位为秒\ public function push($receiver='',$content='',$m_type='',$m_txt='',$m_time=86400){\
$base64 = base64_encode($this->app_key . ':' . $this->master_secret);\
$header = array("Authorization:Basic $base64","Content-Type:application/json");\
$data = array();\
$data['platform'] = 'all'; //目标用户终端手机的平台类型android,ios,winphone\
$data['audience'] = $receiver; //目标用户 Audience 参数中 tag,alias,registration_id 不能有空值\
\
$data['notification'] = array(\
//统一的模式--标准模式\
"alert"=>$content,\
//安卓自定义\
"android"=>array(\
"alert"=>$content,\
"title"=>"",\
"builder_id"=>1,\
"extras"=>array("type"=>$m_type, "txt"=>$m_txt)\
),\
//ios的自定义\
"ios"=>array(\
"alert"=>$content,\
"badge"=>"1",\
"sound"=>"default",\
"extras"=>array("type"=>$m_type, "txt"=>$m_txt)\
)\
);\
\
//苹果自定义---为了弹出值方便调测\
$data['message'] = array(\
"msg_content"=>$content,\
"extras"=>array("type"=>$m_type, "txt"=>$m_txt)\
);\
//附加选项\
$data['options'] = array(\
"sendno"=>time(),\
"time_to_live"=>$m_time, //保存离线时间的秒数默认为一天\
"apns_production"=>false, //布尔类型 指定 APNS 通知发送环境:0开发环境,1生产环境。或者传递false和true\
);\
$param = json_encode($data);\
\
$res = $this->push_curl($param,$header);\
if($res){\
//得到返回值--成功已否后面判断\
return $res;\
}else{\
//未得到返回值--返回失败\
return false;\
}\
}\
\
\
//推送的Curl方法\
public function push_curl($param="",$header="")\
{\
if (empty($param)) {\
return false;\
}\
$postUrl = $this->url;\
$curlPost = $param;\
$ch = curl_init(); //初始化curl\
curl_setopt($ch, CURLOPT_URL, $postUrl); //抓取指定网页\
curl_setopt($ch, CURLOPT_HEADER, 0); //设置header\
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上\
curl_setopt($ch, CURLOPT_POST, 1); //post提交方式\
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);\
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); // 增加 HTTP Header(头)里的字段\
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 终止从服务端进行验证\
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);\
$data = curl_exec($ch); //运行curl\
curl_close($ch);\
return $data;\
}
获取句柄失败:
![Laravel 记录相关、目录结构、安装](https://cdn.learnku.com/uploads/images/201907/10/42342/VULp22YDGB.png!large)
![Laravel 记录相关、目录结构、安装](https://cdn.learnku.com/uploads/images/201907/10/42342/7kBgsMXZnz.png!large)
用这个其中一个进行适配,可解决
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//不验证证书下同
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //
![Laravel 记录相关、目录结构、安装](https://cdn.learnku.com/uploads/images/201907/05/42342/ieA6aO7b90.png!large)
跨域--NGINX配置
![Laravel 记录相关、目录结构、安装](https://cdn.learnku.com/uploads/images/201907/02/42342/aVymC1LJoO.png!large)
SourceTree安装下载
php获取字节流接口数据
$body_str = @file_get_contents('php://input');
$body = json_decode($body_str, true);
php发送字节流数据
function HttpPost($url, $data)\
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}