拉威尔访谈问答
通过文卡特斯米,2017年5月22日下午4:55:19
Q1。Laravel是什么?
答复:拉维尔是基于MVC设计模式的免费开源“PHP框架”。
它是由Taylor Otwell创造的。Laravel提供了富有表现力和优雅的语法,帮助您轻松快速地创建一个出色的web应用程序。
Q2。列出Laravel提供的一些官方软件包?
答复:
- 出纳员
- 特使
- 护照
- 童子军
- 社会名流
第三季度。列出Laravel的最新功能。
答复:
- 内置CRSF(跨站点请求伪造)保护。
- 内置分页
- 反向路由
- 查询构建器
- 路由缓存
- 数据库迁移
- IOC(反向控制)容器或服务容器。
第四季度。列出Laravel相对于其他Php框架的一些优点。
答复:
- 安装和定制过程比其他的简单和快速。
- 内置的验证系统。
- 支持多个文件系统
- 如Laravel Socialite, Laravel收银员,Laravel灵丹妙药,护照,Laravel Scout。
- 雄辩的ORM(对象关系映射)与PHP活动记录实现。
- 内置命令行工具“Artisan”,用于创建代码框架、数据库结构和构建它们的迁移。
Q5。什么是作曲家?
答复:Composer是PHP依赖项管理器,用于安装PHP应用程序的依赖项。
Q6。如何通过composer安装laravel ?
答复:composer创建项目laravel/laravel您的项目名称版本
问题7。如何检查laravel当前版本?
答复:您可以使用artisan命令的——version选项检查Laravel安装的当前版本
用途:-
php artisan--版本
处置。什么是php技工。列出一些工匠的命令?
答复:PHP工匠是否随附命令行界面/工具拉维尔. 它提供了许多有用的命令,可以帮助您轻松地构建应用程序。以下是一些artisian命令的列表:-
- php工匠列表
- php工匠的帮助
- php工匠修补
- php工匠制作
- php artisan--版本
- php artisan生成模态名称
- PHP技工使控制器controller_name
问题9。解释拉威尔事件?
答复:事件是由程序检测和处理的事件。Laravel事件提供了一个简单的观察者实现,允许我们在应用程序中订阅和侦听事件。
下面是laravel的一些例子:-
- 新用户注册成功
- 一条新的评论被贴了出来
- 用户登录/注销
- 增加新产品。
Q10。如何在laravel中开启查询日志?
答复:使用enableQueryLog方法:
DB::connection()->enableQueryLog();
您可以使用getQueryLog方法获取已执行查询的数组:
$ = DB:查询:getQueryLog ();
问题11。如何在Laravel关闭一条线路的CRSF保护?
答复:在“app/Http/Middleware/VerifyCsrfToken.php”中
//添加一组路由以跳过CSRF检查
私有$exceptUrls=['controller/route1','controller/route2'];
/ /修改这个函数
公共函数句柄($request,Closure$next)
{
/ /添加这个条件
foreach($this->exceptUrls as $route) {
如果($请求- >(美元)){
返回$next($request);
}
}
返回父::句柄($request,$next);
}
问题12。流明是什么?
答复:Lumen是基于Laravel顶级组件的PHP微框架。它是由Taylor Otwell创造的。它是构建基于Laravel的微服务和快速REST API的完美选择。它是可用的最快的微框架之一。
问题13。什么是拉维立面?
答复:Laravel Facades为应用程序的服务容器中可用的类提供了一个类似静态的接口。Laravel的自我船舶与许多立面提供了几乎所有Laravel的功能。拉维立面作为服务容器中底层类的“静态代理”,提供了简洁、表达性语法的好处,同时保持了比传统静态类方法更强的可测试性和灵活性。Laravel的所有facade都在Illuminate\Support\ facades命名空间中定义。你可以像这样轻松地访问Facade:
使用Lightning\Support\Facades\Cache;
路由::获取('/cache',函数(){
返回缓存::get('key');
});
问题14。什么是laravel合同?
答复:Laravel的契约只不过是一组接口,定义了由拉维尔框架。
Q15.解释Laravel服务容器?
答复:Laravel最强大的功能之一是其服务容器
它是在Laravel中解析类依赖项和执行依赖项注入的强大工具。
依赖项注入是一个花哨的短语,本质上意味着类依赖项通过构造函数或在某些情况下通过“setter”方法“注入”到类中。
你可以阅读更多关于Laravel的文章在这里
杆子有着。你怎么能使用者Laravel中的IP地址?
答复:public function getUserIp(Request $ Request){
//正在获取远程用户的ip地址
返回$user_ip_address=$request->ip();
}
Q17.如何在Laravel模式中使用自定义表?
答复:通过覆盖Eloquent的受保护的$table属性,我们可以在laravel中使用自定义表。下面是示例用法
类用户扩展雄辩{
受保护的$table=“我的用户表”;}
问题18.什么是拉雷维尔的口才?
答复:雄辩ORM包括在Laravel提供了一个漂亮的,简单的ActiveRecord实现与您的数据库工作。每个数据库表都有一个对应的“模型”,用于与该表交互。模型允许您查询表中的数据,以及向表中插入新记录。
下表=美元“my_user_table”;
}
问题19。如何在Laravel模态中定义可填充属性?
答复:您可以通过覆盖Laravel Eloquent的可填充属性来定义可填充属性。下面是使用示例
类用户扩展Eloquent{
受保护的$fillable=array('id','first_name','last_name','age');
}
Q20。Laravel的vendor目录中有什么?
答复:我们从composer中提取的任何软件包都保存在laravel的供应商目录中。
温度系数。Laravel中的哪个目录控制器?
答复:我们把所有的控制器都关了起来
应用程序/ http / Controllersdirectory
的时候。PHP的紧凑函数做什么?
答复:PHP紧凑函数接受每个键,并试图找到一个同名的变量。如果变量被找到,它将构建一个关联数组。
Q23处。定义ORM ?
答复:对象关系映射(ORM)是一种在面向对象编程语言中用于在不兼容的类型系统之间转换数据的编程技术。
问题24。如何使用eloquent在Laravel中创建记录?
答复:要使用laravel Eloquent在数据库中创建新记录,只需创建一个新的模型实例,在模型上设置属性,然后调用save方法:下面是示例用法
公共函数saveProduct(Request $ Request)
$product =新产品;
产品- >名称=美元请求- >名称;
$product->description=$request->name;
$product->save();
问题25。列出Laravel中查询生成器提供的一些聚合方法
答复:
- 计数()
- 最大值()
- min()
- 平均值()
- sum()
问题26。laravel中雄辩的cursor()方法的目的是什么?
答复:游标方法允许您使用游标遍历数据库记录,游标只执行一个查询。在处理大量数据时,可以使用游标方法大大减少内存使用。
示例用法
foreach (Product::where('name', 'bar')->cursor() as $flight) {
//做点什么
}
问题27。如何在laravel中登录用户信息?
答复:身份验证:用户()函数用于获取laravel中登录的用户信息。
用法:-
if(Auth::check()){
$ loggedIn_user =身份验证:用户();
dd ($ loggedIn_user);
}
问题28.拉雷维尔的闭包是什么?
答复:闭包是一个匿名函数,可以指定给变量或作为参数传递给另一个函数。闭包可以访问创建它的作用域之外的变量。
Q29。Laravel的优势是什么?
答复:
- 简单且一致的语法
- 设置过程很简单
- 定制过程简单
- 代码总是由Laravel管理
Q30。Laravel5.0的功能是什么?
答复:
- 方法注入
- 合同
- 路由缓存
- 事件对象
- 多个文件系统
- 认证脚手架
- dotenv–环境检测
- 拉威尔调度器
问。比较Laravel和Codeigniter?
答复:
拉维尔 | Codeigniter |
Laravel是一个具有表达性和优雅语法的框架 | CodeIgniter是一个功能强大的PHP框架 |
发展是一种愉快的、创造性的体验 | 用于创建功能齐全的web应用程序的简单而优雅的工具包。 |
Laravel是为PHP的最新版本构建的 | Codeigniter是一个更老、更成熟的框架 |
与CodeIgniter相比,它更面向对象。 | 与Laravel相比,它不那么面向对象。 |
Laravel社区仍然很小,但发展非常迅速。 | Codeigniter社区很大。 |
问题32。什么是捆绑包、反向路由和IoC容器?
答复:
捆:这些是你可以下载并添加到你的web应用程序中的小功能。
反向路由:这允许您更改路由,应用程序将根据此链接更新所有相关链接。
IoC容器Control为你提供了一个方法来生成新对象,并可选地实例化和引用单例对象。
问题33。如何在Laravel中设置数据库连接?
答复:数据库配置文件路径为:config/Database.php
下面是数据库文件的示例
“mysql”=>[
“读”= > [
'主机'=>'本地主机',
],
“写”= > [
'主机' = > ' localhost '
],
“司机”= >“mysql”,
“数据库”=>“数据库”,
“用户名”= >“根”,
'密码'=>'',
“字符集”=>“utf8”,
“排序”= >“utf8_unicode_ci”,
'前缀'=>'',
],
问题34。如何启用查询日志记录?
答复:DB::connection()->enableQueryLog();
Q35。如何在Laravel中使用选择查询?
答复:$users = DB::select('select * from users where city_id = ?', 10);
如果(!空(用户)美元){
foreach(用户用户美元){
}
}
Q36。如何在Laravel中使用Insert语句?
答复:DB::insert('insert into users(id、姓名、城市id)值(?,),[1,'Web technology',10]);
的地区。如何在Laravel中使用更新语句?
答复:DB::update('update users set city_id = 10 where id = ?', [1015]);
问题38。如何在Laravel中使用Update语句?
答复:DB::update('update users set city_id = 10 where id = ?', [1015]);
Q39.如何在Laravel中使用delete语句?
答复:DB::delete('delete from users,其中id=?',[1015]);
Laravel支持缓存吗?
答复:是的,它提供了。
Q41。什么是HTTP中间件?
答复:中间件提供了一种方便的机制来过滤进入应用程序的HTTP请求。例如,Laravel包含一个中间件,用于验证应用程序的用户是否经过身份验证。如果用户没有经过身份验证,中间件将用户重定向到登录屏幕。但是,如果用户通过了身份验证,中间件将允许请求进一步进入应用程序。
当然,除了身份验证之外,还可以编写其他中间件来执行各种任务。CORS中间件可能负责将适当的头添加到离开应用程序的所有响应中。日志中间件可能会将所有传入的请求记录到应用程序中。
Laravel框架中包含了几个中间件,包括用于身份验证和CSRF保护的中间件。所有这些中间件都位于app/Http/ middleware目录中。
Q42。什么是数据库迁移?以及如何使用它向数据库中添加插入初始数据?
答复:迁移类似于数据库的版本控制,允许团队轻松地修改和共享应用程序的数据库模式。迁移通常与Laravel的模式构建器配对,以便轻松构建应用程序的数据库模式。如果您曾经告诉一个团队成员手动将一列添加到他们的本地数据库模式中,那么您就遇到了数据库迁移所解决的问题。
Laravel提供了一个简单的方法,可以使用种子类为数据库添加测试数据。所有种子类都存储在数据库/种子目录中。种子类可以有您希望的任何名称,但可能应该遵循一些合理的约定,如UsersTableSeeder等。默认情况下,为您定义了DatabaseSeeder类。在这个类中,您可以使用调用方法来运行其他种子类,从而允许您控制种子顺序。
Q43。哪些目录需要可写laravel安装?
答复:安装Laravel后,您可能需要配置一些权限。存储和引导/缓存目录中的目录应由web服务器写入,否则Laravel将无法运行。如果您正在使用Homestead虚拟机,则应已设置这些权限。
Q44。如何在Laravel实现你自己的包?
答复:可以使用以下步骤在laravel中创建包:
- 包文件夹和名称
- 作曲家。Json文件的包
- 通过main composer.json和PSR-4加载包
- 创建服务提供商
- 为您的包创建一个Controller
- 创建Routes.php文件
问题45。Laravel4和Laravel5.x之间的主要区别是什么?
答复:综上所述Laravel 5.0发布说明:
- 旧的app/models目录已经被完全移除。
- 控制器、中间件和请求(Laravel 5.0中的一种新类型的类)现在被分组在app/Http目录下。
- 新的app/Providers目录将替换以前版本的Laravel 4.x中的app/start文件。
- 应用程序语言文件和视图已移动到资源目录。
- 所有主要的Laravel组件都实现了接口,这些接口位于Illumb/contracts存储库中。
- 新路由:缓存Artisan命令,可大大加快路由的注册速度。
- Laravel5现在支持HTTP中间件,包含的身份验证和CSRF“过滤器”已转换为中间件。
- 现在可以在控制器方法上键入提示依赖项。
- 用户注册、身份验证和密码重置控制器现在包括现成的,以及简单的对应视图,它们位于参考资料/views/auth。
- 现在可以将事件定义为对象,而不是简单地使用字符串。
- 除了Laravel 4中支持的队列作业格式外,Laravel 5还允许您将队列作业表示为简单的命令对象。这些命令位于app/commands目录中。
- Laravel中现在包含了一个数据库队列驱动程序,它提供了一个简单的本地队列驱动程序,除数据库软件外,无需额外安装包。
- Laravel命令调度程序允许您在Laravel本身中流利地、表达地定义命令调度,并且您的服务器上只需要一个Cron条目。
- php artisan tinker命令现在使用了Justin Hileman的Psysh,这是一个更健壮的php REPL。
- Laravel 5现在使用万斯·卢卡斯的DotEnv。
- 由Jeffrey Way编写的Laravel Elixir提供了一个流畅、富有表现力的接口来编译和连接您的资产。
- Laravel Socialite是一个可选的,Laravel 5.0+兼容的包,提供完全无痛苦的认证与OAuth提供商。
- Laravel现在包括强大的Flysystem文件系统抽象库,提供与本地、Amazon S3和Rackspace云存储的无痛苦集成—所有这些都具有一个统一而优雅的API!
- Laravel 5.0引入了表单请求,它扩展了Illuminate\Foundation\Http\FormRequest类。这些请求对象可以与控制器方法注入相结合,以提供验证用户输入的无模板方法。
- Laravel 5基础控制器现在包含一个ValidatesRequests特征。这个特征提供了一个简单的验证方法来验证传入请求。
- 框架中添加了新的Artisan生成器命令。
- 流行的dd helper函数(转储变量调试信息)已升级为使用惊人的Symfony VarDumper。
Q46。什么是路由,如何路由,有哪些不同的方式来编写它?
答复:所有Laravel管线都在管线文件中定义,这些文件位于管线目录中。这些文件由框架自动加载。routes/web.php文件定义用于web界面的路由。这些路由分配给web中间件组,该组提供会话状态和CSRF保护等功能。routes/api.php中的路由是无状态的,分配给api中间件组。对于大多数应用程序,首先在routes/web.php文件中定义路由。
相关面试问题。。。