封装全局公共函数:
- 在 app/Helpers/下新建一个文件 functions.php,用来写入公共方法。
- 打开项目根目录下的 composer.json 文件,找到"autoload" 配置项。
- 打开终端(项目根目录),执行composer dump-auto命令 (使用composer,你需要有一个composer.json文件,此文件的作用主要用来声明包之间的相互关系和其他的一些元素标签)。
- 在控制器的随意一个方法中执行封装的公用方法,有数据输出则配置成功。
调用自己的对象类:
[外链图片转存失败(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
。
Windows下安装Composer的详细教程(创建并运行一个新的 Laravel 项目)
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;
}
}
laravel打印sql语句和表的联合查询:
PHPstorm 的Ctrl+斜线失效
clone project
安装依赖
composer install
copy .env
cp .env.example .env
安装 Laravel 之后下一件应该做的事就是将应用程序的密钥设置为随机字符串
php artisan key:generate
运行数据库迁移文件 .env 下的配置数据库 才能在PHPstudy里生成表
php artisan migrate
运行 passport:install 命令来创建生成安全访问令牌时所需的加密密钥
php artisan passport:install
配置.env passport 认证密钥 这步没必要
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
<https://laravelacademy.org/post/9153.html>
极光推送发货信息到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;
}