首页
关于
归档
朋友
壁纸
留言
API平台
告白墙
更多
休闲游戏
留言板
练字贴
Layui手册
Search
1
【PHP】PHPoffice/PHPSpreadsheet读取和写入Excel
1,019 阅读
2
【Git】No tracked branch configured for branch master or the branch doesn't exist.
748 阅读
3
【composer】composer常用命令
490 阅读
4
【Layui】控制页面元素展示隐藏
442 阅读
5
【MySQL】MySQL触发器应用场景和使用方法
422 阅读
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
登录
Search
标签搜索
PHP
函数
方法
类
MySQL
ThinkPHP
OOP
JavaScript
Layui
Web
Linux
Array
设计模式
Git
PHPSpreadsheet
PHPoffice
排序算法
面试题
Windows
基础
小破孩
累计撰写
212
篇文章
累计收到
16
条评论
首页
栏目
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
页面
关于
归档
朋友
壁纸
留言
API平台
告白墙
休闲游戏
留言板
练字贴
Layui手册
搜索到
4
篇与
的结果
2023-07-10
laravel内置工具oauth2.0
要在Laravel中使用OAuth 2.0生成接口凭证,您可以按照以下步骤进行操作:1.首先,确保您已经安装了Laravel和laravel/passport扩展包。您可以使用Composer来安装它们:composer require laravel/laravel composer require laravel/passport 2.在终端中运行以下命令以发布Passport的数据库迁移文件和配置文件:php artisan vendor:publish --provider="Laravel\Passport\PassportServiceProvider"这将生成一些必要的文件和表格。3.运行数据库迁移以创建Passport所需的表格:php artisan migrate4.在app/Providers/AuthServiceProvider.php文件中注册Passport的路由和授权策略。在boot方法中添加以下代码:<?php use Laravel\Passport\Passport; public function boot() { $this->registerPolicies(); Passport::routes(); } 5.在app/User.php模型中使用HasApiTokens trait,以启用用户模型的API令牌功能。在类定义中添加以下代码:<?php use Laravel\Passport\HasApiTokens; class User extends Authenticatable { use HasApiTokens; // ... }6.运行以下命令以创建加密访问令牌和刷新令牌的客户端:php artisan passport:install这将生成一个客户端ID和密钥,您需要将其保存起来。7.在config/auth.php文件中配置Passport作为默认的驱动器,例如:<?php 'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ], 8.现在,您可以使用Laravel的认证功能来注册和登录用户。当用户成功登录后,您可以使用以下代码生成接口凭证:<?php use Illuminate\Support\Facades\Auth; public function generateToken() { $user = Auth::user(); $token = $user->createToken('Your App Name')->accessToken; return response()->json(['token' => $token]); }请注意,上述代码中的'Your App Name'是您的应用程序名称,您可以根据实际情况进行修改。9.定义一个路由来访问generateToken方法。您可以在routes/api.php文件中添加以下代码:<?php use Illuminate\Support\Facades\Route; Route::middleware('auth:api')->get('/generate-token', 'YourController@generateToken');请将YourController替换为包含generateToken方法的控制器类名。现在,当通过身份验证并访问/generate-token接口时,将生成一个接口凭证(访问令牌),您可以将其用于后续的API请求。请注意,上述代码仅为示例,您可能需要根据您的实际需求进行修改和调整。另外,确保您已正确配置Passport并且您的身份验证逻辑正常工作。
2023年07月10日
204 阅读
0 评论
0 点赞
2023-07-10
基于laravel生成一个短信队列
您可以按照以下步骤在Laravel中使用短信队列:1.首先,确保您已经安装了Laravel和相应的短信服务提供商的SDK。您可以使用Composer来安装它们:composer require laravel/laravelcomposer require your-sms-sdk-package2.在.env文件中配置您的短信服务提供商的相关信息,例如:SMS_DRIVER=your_driver_nameSMS_API_KEY=your_api_key请将your_driver_name替换为您选择的短信服务提供商的驱动名称,将your_api_key替换为您的API密钥。3.在config/services.php文件中添加短信服务提供商的配置,例如:<?php 'sms' => [ 'driver' => env('SMS_DRIVER'), 'api_key' => env('SMS_API_KEY'), // 其他配置项... ], 4.创建一个发送短信的任务类(例如SendSmsJob),并在其中实现发送短信的逻辑。您可以使用Laravel的队列功能来处理短信发送的异步任务。 <?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use YourSmsSdkPackage; // 替换为您选择的短信服务提供商的SDK class SendSmsJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $phoneNumber; protected $message; /** * Create a new job instance. * * @param string $phoneNumber * @param string $message */ public function __construct($phoneNumber, $message) { $this->phoneNumber = $phoneNumber; $this->message = $message; } /** * Execute the job. * * @return void */ public function handle() { // 使用短信服务提供商的SDK发送短信 YourSmsSdkPackage::sendSms($this->phoneNumber, $this->message); } } 请将YourSmsSdkPackage替换为您选择的短信服务提供商的SDK。5.在需要发送短信的地方,使用以下代码将任务推送到队列中:<?php use App\Jobs\SendSmsJob; dispatch(new SendSmsJob($phoneNumber, $message)); 请将$phoneNumber和$message替换为实际的手机号码和短信内容。6.配置队列驱动器。您可以在.env文件中设置QUEUE_CONNECTION来指定使用的队列驱动器,例如:QUEUE_CONNECTION=database7.运行队列处理器。在终端中运行以下命令以启动队列处理器:php artisan queue:work现在,您的短信将被添加到队列中,并由队列处理器异步发送。请注意,上述代码仅为示例,您可能需要根据您选择的短信服务提供商的SDK和Laravel的版本进行相应的修改和调整。另外,确保您已正确配置短信服务提供商的相关信息,并且您的服务器能够正常访问到短信服务提供商的API。
2023年07月10日
57 阅读
0 评论
0 点赞
2022-06-23
【Laravel】laravel使用总结
laravel框架最大的特点和优秀之处就是集合了php比较新的特点,以及各种各样的设计模式,Ioc模式,依赖注入等一、Laravel有哪些特点1 强大的rest router:用简单的回调函数就可以调用,快速绑定controller和router2 artisan:命令行工具,很多手动的工作都自动化3 可继承的模板,简化view的开发和管理4 blade模板:渲染速度更快5 ORM操作数据库6 migration:管理数据库和版本控制7 测试功能也很强大8 composer也是亮点9 laravel框架引入了门面,依赖注入,Ioc模式,以及各种各样的设计模式等二、架构模式laravel框架是使用了服务组件化的开发模式,由多个服务提供者构成了组件,再由多个组件提供不同的服务,然后是多个服务构成了项目服务提供者是应用配置的核心,是通过 register方法中绑定服务到服务容器的。三、涉及到的设计模式laravel框架使用了大量设计模式,使模块之间耦合度很低,服务容器可以方便的扩展框架功能以及编写测试。1.ORM - 对象关系映射模式2 依赖注入与IOC容器 - 策略模式3 监听与触发 - 观察者模式4 门面模式 - 静态代理还有其他的,比如注册服务的时候用到单例模式等。四、服务方面能快速开发出功能,自带各种方便的服务,比如数据验证、队列、缓存、数据迁移、测试、artisan 命令行等等,还有强大的 ORM,artisan强大的命令行工具,实现自动化。Laravel安全功能有效地利用了盐散列和加密码机制,Bcrypt哈希算法”来创建加密密码。五、框架的其他知识点服务容器:是一个用于管理类依赖和执行依赖注入的强大工具。其实质是通过构造函数或者某些情况下通过「setter」方法将类依赖注入到类中。 门面:为应用服务容器中的绑定类提供了一个「静态」接口 ,优点:在维护时能够提供更加易于测试、更加灵活、简明优雅的语法。契约:用来规划服务提供者的格式、方法、参数等,给服务提供者规范了一定约束。反射:主要用来动态地获取系统中类、实例对象、方法等语言构件的信息,通过发射API函数可以实现对这些语言构件信息的动态获取和动态操作等。后期静态绑定:用于在继承范围内引用静态调用的类,即在类的继承过程中,使用的类不再是当前类,而是调用的类。六、生命周期生命周期如下:入口文件-请求web服务器导入这个文件-载入 Composer 生成的自动加载启动核心文件-内核启动(服务提供者启动框架的各种组件)-交给路由分发到到(控制器,中间件等)-逻辑处理-返回结果七、laravel框架运用到的repository模式的主要思想建立一个数据操作代理层,把controller里的数据操作剥离出来,这样做有几个好处:1 把数据处理逻辑分离使得代码更容易维护2 数据处理逻辑和业务逻辑分离,可以对这两个代码分别进行测试3 减少代码重复4 降低代码出错的几率5 让controller代码的可读性大大提高
2022年06月23日
151 阅读
0 评论
0 点赞
2022-06-19
【Laravel】Laravel为什么会成为最优雅的PHP框架
Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理、用户身份验证等各种需求。另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器。Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel。本文我们将讨论为什么Laravel会成为最成功的PHP框架。模块化和可扩展性Laravel注重代码的模块化和可扩展性。你可以在包含超过5500个程序包的Packalyst目录中找到你想要添加的任何文件。Laravel的目标是让你能够找到任何想要的文件。微服务和程序接口Lumen是一个由laravel衍生的专注于精简的微框架。它高性能的程序接口可让你更加简单快速的开发微型项目。Lumen使用最小的配置集成了所有laravel的重要特性,你可以通过将代码复制到laravel项目的方式将完整的框架迁移过来。 get('/', function() { return view('lumen'); }); $app>post('framework/{id}', function($framework) { $this>dispatch(new Energy($framework)); }); HTTP路径Laravel拥有类似于Ruby on Rails的,快速、高效的路由系统。它可以让用户通过在浏览器上输入路径的方式让应用程序的各部分相关联。 Route::get('/', function () { return 'Hello World'; });HTTP中间件应用程序可受到中间件的保护——中间件会处理分析和过滤服务器上的HTTP请求。你可以安装中间件,用于验证注册用户,并避免如跨站脚本(XSS)或其它的安全状况的问题。 input('age') <= 200) { return redirect('home'); } return $next($request); }缓存你的应用程序可得到一个健壮的缓存系统,通过对其进行调整,可以让应用程序的加载更加快速,这可以给你的用户提供最好的使用体验。 Cache::extend('mongo', function($app) { return Cache::repository(new MongoStore); });身份验证安全是至关重要的。Laravel自带对本地用户的身份验证,并可以使用“remember” 选项来记住用户。它还可以让你例如一些额外参数,例如显示是否为活跃的用户。 if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1 ], $remember)) { // The user is being remembered... } 种类集成Laravel Cashier可以满足你要开发支付系统所需要的一切需求。除此之外,它还同步并集成了用户身份验证系统。所以,你不再需要担心如何将计费系统集成到开发当中了。 $user = User::find(1); $user>subscription('monthly')>create($creditCardToken);任务自动化Elixir是一个可让我们使用Gulp定义任务的Laravel程序接口,我们可以使用Elixir定义可精简CSS 和JavaScript的预处理器。 elixir(function(mix) { mix.browserify('main.js'); });加密一个安全的应用程序应该做到可把数据进行加密。使用Laravel,可以启用OpenSSL安全加密算法AES256CBC来满足你所有的需求。另外,所有的加密值都是由检测加密信息是否被改变的验证码所签署的。 use Illuminate\Contracts\Encryption\DecryptException; try { $decrypted = Crypt::decrypt($encryptedValue); } catch (DecryptException $e) { // }事件处理应用程序中事件的定义、记录和聆听都非常迅速。EventServiceProvider事件中的listen包含记录在你应用程序上所有事件的列表。 protected $listen = [ 'App\Events\PodcastWasPurchased' => [ 'App\Listeners\EmailPurchaseConfirmation', ], ];分页在Laravel中分页是非常容易的因为它能够根据用户的浏览器当前页面生成一系列链接。 paginate(15); return view('user.index', ['users' => $users]); } }对象关系图(ORM)Laravel包含一个处理数据库的层,它的对象关系图被称为Eloquent。另外这个对象关系图也适用于PostgreSQL。 $users = User::where('votes', '>', 100)>take(10)>get(); foreach ($users as $user) { var_dump($user>name); }单元测试单元测试的开发是一个耗费大量时间的任务,但是它却是保证我们的应用程序保持正常工作的关键。Laravel中可使用PHPUnit执行单元测试。 visit('/') >see('Laravel 5') >dontSee('Rails'); } }待办事项清单Laravel提供在后台使用待办事项清单(to do list)处理复杂、漫长流程的选择。它可以让我们异步处理某些流程而不需要用户的持续导航。 `Queue :: push ( new SendEmail ( $ message ));` 转载:https://mp.weixin.qq.com/s/r10CZJF4AyZo-T1LRDFMeg;
2022年06月19日
218 阅读
0 评论
0 点赞