精华内容
下载资源
问答
  • Laravel面试题及答案

    千次阅读 2020-02-16 17:17:40
    Laravel是一个基于Symfony的... 它由Taylor Otwell创建,允许开发人员编写富有表现力的优雅语法。...通过阅读下面Laravel面试题和答案,有助于让您在面试过程中应付自如,也可作为测评或复习巩固Laravel知识。 1. 如何...

    Laravel是一个基于Symfony的免费开源PHP Web框架。 它由Taylor Otwell创建,允许开发人员编写富有表现力的优雅语法。 Laravel内置了对用户身份验证和授权的支持,这在一些最流行的PHP框架(如CodeIgniter,CakePHP)中缺失。通过阅读下面Laravel面试题和答案,有助于让您在面试过程中应付自如,也可作为测评或复习巩固Laravel知识。

    1. 如何在Laravel中启用查询日志?

    使用enableQueryLog方法在Laravel中启用查询日志 -

    DB::connection()->enableQueryLog(); 
    
    // 可以使用getQueryLog方法获取已执行查询的数组:
    $queries = DB::getQueryLog();

    2. 使用Laravel框架有哪些优缺点?

    使用Laravel框架的优点

    • Laravel框架具有内置的轻量级刀片模板引擎,可加快编译任务并轻松创建具有动态内容的布局。
    • 提高代码可重用性。
    • Eloquent ORM与PHP活动记录实现。
    • 内置命令行工具“Artisan”,用于创建代码框架,数据库结构并构建其迁移。

    使用laravel框架的缺点

    • 开发过程要求您使用标准,并且应该对编程有真正的了解
    • Laravel是新的框架,与npm(对于node.js),ruby gems和python pip相比,Laravel并不是那么强大。
    • 与ruby on rails相比,laravel的开发速度并不快。
    • Laravel是轻量级的,因此与django和rails相比,它具有较少的内置支持。 但是这个问题可以通过集成第三方工具来解决,但对于大型和非常自定义的网站来说,这可能是一项单调乏味的任务。

    3. Laravel契约(Contracts) 是什么?

    Laravel契约(Contracts) 只不过是一组定义Laravel框架提供的核心服务的接口。

    4. Laravel Eloquent中可用的关系类型有哪些?

    以下是Laravel Eloquent ORM支持的关系类型。

    • 一对一
    • 一对多
    • 一对多(逆)
    • 多对多
    • 有多通过(Has Many Through)
    • 多态关系
    • 多对多的多态关系

    5. Laravel中的依赖注入是什么?

    在软件工程中,依赖注入是一种技术,其中一个对象提供另一个对象的依赖关系。 依赖项是可以使用的对象(服务)。 注入是将依赖项传递给将使用它的依赖对象(客户端)。 该服务成为客户所在州的一部分。将服务传递给客户端,而不是允许客户端构建或查找服务,是模式的基本要求。

    参考:https://en.wikipedia.org/wiki/Dependency_injection

    可以通过Constructor,setter和property injection进行依赖注入。

    6. laravel中的事件是什么?

    事件是程序识别的可由程序或代码处理的动作或事件。 Laravel事件提供了一个简单的观察器实现,用于订阅和侦听应用程序中发生的各种事件/操作。 所有事件类通常都存储在app/Events目录中,而其侦听器存储在应用程序的app/Listener中。

    7. 如何关闭Laravel中特定路由的CSRF保护?

    要在Laravel中关闭CSRF保护,请在文件:app/Http/Middleware/VerifyCsrfToken.php 中添加以下代码 -

    //add an array of Routes to skip CSRF check
    private $exceptUrls = ['controller/route1', 'controller/route2'];
     //modify this function
    public function handle($request, Closure $next) {
     //add this condition foreach($this->exceptUrls as $route) {
     if ($request->is($route)) {
      return $next($request);
     }
    }
    return parent::handle($request, $next);
    }

    8. PHP中的 Composer 是什么? 

    Composer是一个用于管理PHP依赖的工具。 它用于声明项目所依赖的库,并管理(安装/更新)它们。Laravel利用Composer来管理其依赖关系。

    9. 为什么需要迁移?

    迁移是必要的,因为:

    • 如果没有迁移,共享应用程序时的数据库一致性几乎是不可能的,尤其是随着越来越多的人在Web应用程序上进行协作。
    • 生产数据库也需要同步。

    10. 请解释Laravel的服务容器是什么?

    Laravel最强大的功能之一是它的服务容器。 它是一个强大的工具,用于解决类依赖关系并在Laravel中执行依赖注入。
    依赖注入是一个奇特的短语,本质上意味着类依赖性通过构造函数“注入”类,或者在某些情况下“注入”方法。

    11. 如何检查请求为ajax请求?

    在Laravel中,可以使用$request-> ajax()方法检查请求是否为ajax

    示例:

    public function saveData(Request $request)
    {
        if($request->ajax()){
            return "Request is of Ajax Type";
        }
        return "Request is of Http type";
    }

    12. Laravel的Traits是什么?

    PHP Traits只是一组想要包含在另一个类中的方法。Trait就像抽象类一样,不能自己实例化。通过使开发人员能够在生活在不同类层次结构中的几个独立类中自由地重用方法集,创建了Trait以减少PHP中单一继承的限制。

    下面是Traits的一个例子。

    trait Sharable {
    
      public function share($item)
      {
        return 'share this item';
      }
    
    }
    

    PHP

    然后,可以将此Trait包含在其他类中,如下所示:

    class Post {
    
      use Sharable;
    
    }
    
    class Comment {
    
      use Sharable;
    
    }
    

    PHP

    现在,如果要从这些类中创建新对象,会发现它们都有share()方法可用:

    $post = new Post;
    echo $post->share(''); // 'share this item' 
    
    $comment = new Comment;
    echo $comment->share(''); // 'share this item'\n

    13. 什么是服务提供商/提供者?

    服务提供商是所有laravel应用程序引导的中心位置。 您的应用程序以及所有Laravel核心服务也由服务提供商引导。
    所有服务提供商都扩展了IlluminateSupportServiceProvider类。 大多数服务提供者包含寄存器和引导方法。 在register方法中,应该只将事物绑定到服务容器中。永远不应尝试在register方法中注册任何事件侦听器,路由或任何其他功能。

    14. 什么是Laravel?


    Laravel是基于MVC设计模式的免费开源“PHP框架”。它由Taylor Otwell创建。 Laravel提供富有表现力和优雅的语法,有助于轻松快速地创建出色的Web应用程序。

     

    15. 请解释laravel中的验证?

    在编程中,验证是一种方便的方法,可确保数据在进入数据库之前始终处于干净且预期的格式。 Laravel提供了几种不同的方法来验证应用程序传入数据。默认情况下,Laravel的基本控制器类使用ValidatesRequests特性,它提供了一种方便的方法来验证来自客户端的所有传入HTTP请求。还可以通过创建表单请求来验证laravel中的数据。

    16. 请列出Laravel 5.6提供的一些默认包?


    以下是Laravel 5.6提供的一些官方/默认包的列表:

    Cashier
    Envoy
    Passport
    Scout
    Socialite
    Horizon

    17. 什么是数据库迁移?如何通过 artisan 创建迁移?

    迁移就像数据库的版本控制一样,让开发团队轻松修改和共享应用程序的数据库模式。 迁移通常与Laravel的架构构建器配对,以轻松构建应用程序的数据库架构。

    使用以下命令通过 artisan 创建迁移数据。

    // creating Migration
    $ php artisan make:migration create_users_table

    18. Laravel中的反向路由是什么?

    Laravel反向路由根据路由声明生成URL。反向路由使应用程序更加灵活。 它定义了链接和Laravel路由之间的关系。 使用现有路径的名称创建链接时,Laravel会自动创建相应的Uri。 下面是反向路由的一个例子。

    // route declaration
    Route::get('login', 'users@login');
    

    PHP

    使用反向路由,我们可以创建一个链接,并传入定义的任何参数。 如果未提供,可选参数将从生成的链接中删除。

    {{ HTML::link_to_action('users@login') }}
    

    PHP

    它会在视图中自动生成类似 http://xyz.com/login 的网址。

    19. 列出Laravel中查询构建器提供的一些聚合方法?


    Laravel中查询构建器提供的一些聚合方法如下所示:

    count()
    max()
    min()
    avg()
    sum()

    20. 如何通过 composer 来安装laravel?

    可以通过运行以下命令来使用 composer 安装Laravel。

    $ composer create-project laravel/laravel your-project-name version

     

    21. Laravel的 eloquent是什么?

     

    Laravel的Eloquent ORM是用于处理数据库的简单Active Record实现。 Laravel提供了许多与数据库交互的不同方式,Eloquent最引人注目。 每个数据库表都有一个相应的“模型”,用于与该表进行交互。 模型可用于查询表中的数据,以及在表中插入新记录。

    下面是使用 Eloquent 在Database中查询和插入新记录的示例用法。

    // Querying or finding records from products table where tag is 'new'\n$products= Product::where('tag','new');
    // Inserting new record 
     $product =new Product;
     $product->title="Iphone 7";
     $product->price="$700";
     $product->tag='iphone';
     $product->save();

    22. 请列出laravel 5.0的一些功能?

    laravel 5.0的一些功能如下所示 -

    • 内置CSRF(跨站点请求伪造)保护。
    • 内置分页
    • 反向路由
    • 查询构建器
    • 路由缓存
    • 数据库迁移
    • IOC(控制反转)容器或服务容器。

     

    23. 什么是PHP artisan?请列出 artisan 的一些命令?

    PHP artisan是Laravel附带的命令行界面/工具。 它提供了许多有用的命令,可以帮助您轻松构建应用程序。 以下是一些 artisan 命令列表: -

    • php artisan list
    • php artisan help
    • php artisan tinker
    • php artisan make
    • php artisan –versian
    • php artisan make model model_name
    • php artisan make controller controller_name

    24. 如何在Laravel Modal中使用自定义表?

    可以通过覆盖Eloquent的受保护$table属性来在Laravel中使用自定义表。

    示例:

    class User extends Eloquent{
     protected $table="my_user_table";
    
    }
    

    PHP

     

    25. Laravel是否支持缓存?

    当然支持。Laravel支持流行的缓存后端,如:Memcached和Redis。
    默认情况下,Laravel配置为使用文件缓存驱动程序,该驱动程序将序列化的缓存对象存储在文件系统中。对于大型项目,建议使用Memcached或Redis。

    26. Lumen是什么?

     

    Lumen是基于Laravel顶级组件的PHP微框架。它由Taylor Otwell创建。 它是构建基于Laravel的微服务和快速REST API的完美选择。 它是最快的微框架之一。
    可以通过运行以下命令使用composer安装流明 -

    $ composer create-project --prefer-dist laravel/lumen blog

    27. 请解释Laravel中的捆绑包?

    在Laravel中,bundle也称为捆绑包。bundle是扩展Laravel功能的主要方式。 包可能是一个很好的方式来处理像Carbon这样的日期,或者像Behat这样的整个BDD测试框架。在Laravel中,也可以创建自定义捆绑包。

    28. 安装Laravel框架的服务器系统环境有什么要求?

    要安装Laravel,请确保您的服务器满足以下要求:

    • PHP> = 7.1.3
    • OpenSSL PHP扩展
    • PDO PHP扩展
    • Mbstring PHP扩展
    • Tokenizer PHP扩展
    • XML PHP扩展
    • Ctype PHP扩展
    • JSON PHP扩展

    29. Laravel框架中的命名路由是什么?

    命名路由是Laravel框架的另一个惊人功能。 命名路由允许在生成重定向或Urls时更方便地引用路由。可以通过将name方法链接到路由定义来指定命名路由:

    Route::get('user/profile', function () {
        //
    })->name('profile');
    

    PHP

    可以为控制器操作指定路由名称:

    Route::get('user/profile', 'UserController@showProfile')->name('profile');
    

    PHP

    为路径指定名称后,可以在生成URL时使用路径名称,或通过全局路径功能重定向:

    // Generating URLs...
    $url = route('profile');
    // Generating Redirects...
    return redirect()->route('profile');

    30. 请解释一下Laravel中的Facades是什么?

    Laravel Facades提供静态类似于应用程序服务容器中可用类的接口。 Laravel自行搭载许多Facades,可以看到Laravel的几乎所有特征。 Laravel外观充当服务容器中底层类的“静态代理”,提供简洁,富有表现力的语法,同时比传统的静态类方法保持更多的可测试性和灵活性。 Laravel的所有Facades都在IlluminateSupportFacades命名空间中定义。可以这样轻松访问Facades:

    use Illuminate\Support\Facades\Cache;
    
    Route::get('/cache', function () {
        return Cache::get('key');
    });
    

    PHP

     

    31. Laravel的中间件(Middleware)是什么?
     

    顾名思义,Middleware充当请求和响应之间的中间人。 它是一种过滤机制。 例如,Laravel包含一个中间件,用于验证应用程序的用户是否经过身份验证。 如果用户通过身份验证,他将被重定向到主页,否则,他将被重定向到登录页面。

    Laravel中有两种类型的中间件。

    • 全局中间件:将在应用程序的每个HTTP请求上运行。
    • 路由中间件:将被分配到特定路由。
    展开全文
  • 40个常见的 Laravel 面试题和答案

    千次阅读 2020-07-29 09:22:02
    以下是经常问到的 Laravel 和 PHP 相关的面试问题,以便菜鸟以及有经验的应聘者找到合适的工作。 1) 什么是 Laravel ? Laravel 是一个开源的、广泛使用的 PHP 框架。该平台主要用于利用 MVC 架构模式开发 web 应用...

    以下是经常问到的 Laravel 和 PHP 相关的面试问题,以便菜鸟以及有经验的应聘者找到合适的工作。

    1) 什么是 Laravel ?
    Laravel 是一个开源的、广泛使用的 PHP 框架。该平台主要用于利用 MVC 架构模式开发 web 应用程序。
    Laravel 是在 MIT 许可下发布的。因此,其源代码托管在 GitHub 上。它遵循可靠且准确的语言规则,因此是可靠的 PHP 框架。

    2) 定义 Composer
    它是 PHP 的应用程序级程序包管理器。
    它提供了用于管理 PHP 软件依赖项和库的标准格式。

    3) 什么是 HTTP 中间件?
    HTTP 中间件是一种用于过滤 HTTP 请求的技术。
    Laravel 包含一个中间件,用于检查应用程序用户是否已通过身份验证。

    4) 聚合查询生成器的方法名称
    查询构建器的聚合方法是:
    max ()
    min ()
    sum ()
    avg ()
    count ()

    5) 什么是 Route ?
    路由基本上是由 URI (统一资源标识符) 指定的端点。
    它在 Laravel 应用程序中充当指针。
    最常见的是,路由指向控制器上的方法,还指出哪些 HTTP 方法可以访问该 URI。

    6) 为什么使用 Route?
    路由存储在项目根目录下 /routes 文件夹下的文件内。默认情况下,有几个不同的文件对应于应用程序的不同 “面”(“面” 来自六角形体系结构方法)。

    7) 解释通用 Laravel 应用程序中使用的重要目录
    常见的 Laravel 应用程序中使用的目录是:
    App/: 这是我们的应用程序代码所在的源文件夹。所有控制器,策略和模型都在此文件夹中。
    Config/: 保存应用程序的配置文件。这些通常不会直接修改,而是取决于在应用程序根目录下的 .env (环境) 文件中设置的值。
    Database/: 存放数据库文件,包括 迁移,数据填充,和测试工厂。
    Public/: 可公开访问的文件夹,其中包含已编译资源,当然还有 index.php 文件。

    8) 什么是 Controller?
    控制器是 Laravel 所基于的 “MVC”(模型 - 视图 - 控制器) 体系结构中的 “ C”。

    9) 如何在 Laravel 中生成请求?
    在 Laravel 中使用以下 artisan 命令生成请求:
    php artisan make:request UploadFileRequest

    10) 解释 Laravel 中的反向路由。
    反向路由是一种基于符号或名称生成 URL 的方法。
    它使您的 Laravel 应用程序变得灵活。

    11) 解释 web.php 路由
    Web.php 是基于公众的 “浏览器” 路由。这是最常见的途径,也是网络浏览器会遇到的问题。
    它们遍历 Web 中间件组,还包含 CSRF 保护工具 (有助于防御基于表单的恶意攻击和黑客攻击),并且通常包含一定程度的 “状态” (我的意思是他们利用 session 会话)。

    12) 解释 Laravel 中 traits 的特征。
    Laravel traits 是包含在另一个类中的一组函数。
    一个 trait 就像一个抽象类。
    不能直接实例化它,但是可以在其他的类中使用它的方法。

    13) 解释 Laravel 中契约的概念。
    它们是 Laravel 框架的接口集合。这些契约提供核心服务。Laravel 中的契约包括相应的框架实现。

    14) 如何注册您的服务提供者?
    您可以在 config/app.php 配置文件中注册服务提供者,该配置文件包含一个数组,您可以在其中配置服务提供者的类名。

    15) 如何定义 Laravel 的门面?
    所有的门面都定义在 Illuminate\Support\Facades 命名空间当中。

    16) 说明 get 与 post 之间的区别
    Get 方法允许在请求头部 (header) 中发送有限数量的数据。Post 允许在正文中发送大量数据。

    17) 列出 Laravel 5.6 中的软件包
    Laravel 5.6 中的默认软件包为:
    Envoy
    Passport
    Socialite
    Cashier
    Horizon
    Scout

    18) Laravel 中的服务容器是什么
    服务容器是用于在 Laravel 中执行依赖注入的工具。

    19) 如何在 Laravel 中开启查询日志?
    您可以使用 enableQueryLog 方法在 Laravel 中启用查询日志。

    20) 解释 Laravel 中事件的概念。
    事件是一种动作或者操作,可以帮助您订阅和侦听 Laravel 应用程序中发生的事件。当发生任何活动时,Laravel 会自动出发某些事件。
    21) 说一下依赖注入和依赖注入的类型
    它是‘其中一种对象依赖于另一个对象’的技术。依赖注入有三种类型:
    构造函数注入
    setter 注入
    接口注入

    22) 使用 laravel 有什么优势吗?
    Laravel 具有 blade 模板引擎,可创建动态布局并增加编译任务
    可以很简单的复用代码
    您不需要手动维护和包含路径,因为 Laravel 具有自动加载功能
    该框架可帮助您使用 LOC 容器制作新工具
    Laravel 提供了一个版本控制系统,可帮助简化迁移管理

    23) 说明 Laravel 中验证的概念
    在设计任何 Laravel 应用程序时,验证是一个重要的概念。它可以确保在将数据存储到数据库之前,数据始终采用预期的格式。
    Laravel 提供了多种验证数据的方法。基础控制器特征是使用 ValidatesRequests 类,该类提供了一种有用的方法来验证来自客户端计算机的请求。

    24) ORM 代表什么?
    ORM 代表对象关系映射

    25) 如何减少 Laravel 中的内存使用?
    在处理大量数据时,可以使用 cursor 方法以减少内存使用量

    26) 列出 Laravel Eloquent 中可用的关系类型。
    Laravel Eloquent 中可用的关系类型有:
    一对一
    一对多
    多对多
    多对多关联 hasManyThrough
    多态关系

    27) 定义一下 Laravel 使用的模板引擎.
    Blade 是 Laravel 使用的功能强大的模板引擎。

    28) 列出 Laravel 支持的数据库.
    PostgreSQL
    SQL Server
    SQLite
    MySQL

    29) 为什么迁移很重要?
    迁移非常重要是因为它允许您通过维护数据库一致性来共享应用程序。
    如果不进行迁移,则很难共享任何 Laravel 应用程序。
    它还允许您同步数据库。

    30) 定义 Lumen
    Lumen 是一个微型框架。它是基于 Laravel 服务和 REST API 的更小,更快的版本。

    31) 解释 PHP artisan
    artisan 是 Laravel 的命令行工具。它提供的命令可帮助您轻松构建 Laravel 应用程序。

    32) 如何生成链接?
    Laravel 用 helpers 函数 来生成链接。当您在模板和 API 响应中建立链接时,这将很有帮助。

    33) 哪个类用于处理异常?
    Laravel 异常由 App.exceptions.handler 类处理。

    34) 什么是常见的 HTTP 错误代码?
    错误 404 未找到页面时显示
    错误 401未授权错误时显示

    35) 在 Laravel 中解释 Fluent 查询生成器。
    它是一个数据库查询生成器,它提供了方便,快捷的界面来创建和运行数据库查询。

    36) dd () 函数的用途是什么?
    此函数用于将变量的内容打印到浏览器。dd 的完整格式是 Dump and Die。

    37) 列出 Laravel 中使用的常见 artisan 命令。
    PHP artisan down;
    PHP artisan up;
    PHP artisan make:controller;
    PHP artisan make:model;
    PHP artisan make:migration;
    PHP artisan make:middleware;

    38) 在 Laravel 中 如何配置邮件发送?
    Laravel 提供了一些 API,可以在本地和实时服务器上发送电子邮件。

    39) 解释授权
    这是一种使用密码标识用户登录凭据的方法。
    在 Laravel 中,可以使用带有两个参数 ,用户名和 密码的会话来管理它。

    40) delete ():从数据库表中删除所有记录
    delete ():从数据库表中删除所有记录。
    softDeletes ():不会从表中删除数据。它用于将任何记录标记为已删除。

    展开全文
  • Laravel 面试题

    万次阅读 2017-12-01 20:26:04
    遗留又补充了一些 PHPer 的常见面试题留给大神们解答。 分库分表怎么设计 如何处理 MySQL 死锁? 谈谈你对闭包的理解 PHP 内存回收机制 如何解决 PHP 内存溢出问题 数据库优化的方法 简述 Laravel 的...

    PHP模块

    PHP7 和 PHP5 的区别,具体多了哪些新特性?

    性能提升了两倍
    结合比较运算符 (<=>)
    标量类型声明
    返回类型声明
    try…catch 增加多条件判断,更多 Error 错误可以进行异常处理
    匿名类,现在支持通过new class 来实例化一个匿名类,这可以用来替代一些“用后即焚”的完整类定义
    …… 了解更多查看文章底部链接 PHP7 新特性

    为什么 PHP7 比 PHP5 性能提升了?

    变量存储字节减小,减少内存占用,提升变量操作速度
    改善数组结构,数组元素和 hash 映射表被分配在同一块内存里,降低了内存占用、提升了 cpu 缓存命中率
    改进了函数的调用机制,通过优化参数传递的环节,减少了一些指令,提高执行效率

    laravel 模块

    服务提供者是什么?

    服务提供者是所有 Laravel 应用程序引导启动的中心, Laravel 的核心服务器、注册服务容器绑定、事件监听、中间件、路由注册以及我们的应用程序都是由服务提供者引导启动的。

    IoC 容器是什么?

    IoC(Inversion of Control)译为 「控制反转」,也被叫做「依赖注入」(DI)。什么是「控制反转」?对象 A 功能依赖于对象 B,但是控制权由对象 A 来控制,控制权被颠倒,所以叫做「控制反转」,而「依赖注入」是实现 IoC 的方法,就是由 IoC 容器在运行期间,动态地将某种依赖关系注入到对象之中。

    其作用简单来讲就是利用依赖关系注入的方式,把复杂的应用程序分解为互相合作的对象,从而降低解决问题的复杂度,实现应用程序代码的低耦合、高扩展。

    Laravel 中的服务容器是用于管理类的依赖和执行依赖注入的工具。

    Facades 是什么?

    Facades(一种设计模式,通常翻译为外观模式)提供了一个”static”(静态)接口去访问注册到 IoC 容器中的类。提供了简单、易记的语法,而无需记住必须手动注入或配置的长长的类名。此外,由于对 PHP 动态方法的独特用法,也使测试起来非常容易。

    Contract 是什么?

    Contract(契约)是 laravel 定义框架提供的核心服务的接口。Contract 和 Facades 并没有本质意义上的区别,其作用就是使接口低耦合、更简单。

    依赖注入的原理?

    这个就不解释了吧,这是理解 IoC 容器的前提。

    什么是 Composer, 工作原理是什么?

    Composer 是 PHP 的一个依赖管理工具。工作原理就是将已开发好的扩展包从 packagist.org composer 仓库下载到我们的应用程序中,并声明依赖关系和版本控制。

    缓存

    Redis、Memecached 这两者有什么区别?

    Redis 支持更加丰富的数据存储类型,String、Hash、List、Set 和 Sorted Set。Memcached 仅支持简单的 key-value 结构。
    Memcached key-value存储比 Redis 采用 hash 结构来做 key-value 存储的内存利用率更高。
    Redis 提供了事务的功能,可以保证一系列命令的原子性
    Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中
    Redis 只使用单核,而 Memcached 可以使用多核,所以平均每一个核上 Redis 在存储小数据时比 Memcached 性能更高。

    Redis 如何实现持久化?

    RDB 持久化,将 redis 在内存中的的状态保存到硬盘中,相当于备份数据库状态。
    AOF 持久化(Append-Only-File),AOF 持久化是通过保存 Redis 服务器锁执行的写状态来记录数据库的。相当于备份数据库接收到的命令,所有被写入 AOF 的命令都是以 redis 的协议格式来保存的。

    数据库

    什么是索引,作用是什么?常见索引类型有那些?Mysql 建立索引的原则?

    索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针,相当于书本的目录。其作用就是加快数据的检索效率。常见索引类型有主键、唯一索引、复合索引、全文索引。

    索引创建的原则

    最左前缀原理
    选择区分度高的列作为索引
    尽量的扩展索引,不要新建索引

    高并发如何处理?

    使用缓存
    优化数据库,提升数据库使用效率
    负载均衡
    PHP 的设计模式就不多讲了,但是 SOLID 设计原则是每一位 PHPer 都必须要掌握的。

    其他问题

    遗留又补充了一些 PHPer 的常见面试题留给大神们解答。

    分库分表怎么设计
    如何处理 MySQL 死锁?
    谈谈你对闭包的理解
    PHP 内存回收机制
    如何解决 PHP 内存溢出问题
    数据库优化的方法
    简述 Laravel 的运行原理
    Laravel 路由实现原理
    cookie 和 session 区别,session 保存在服务器的哪里?服务端是如何获取客户端的cookie?
    服务器集群搭建、负载均衡、反向代理
    服务器常用命令

    原文链接:PHPer、Laravel 面试可能会遇到的问题及答案

    展开全文
  • laravel面试题

    2021-01-27 10:06:47
    使用 laravel 的优势? 下面是 laravel 的主要优点: Laravel 具有 blade 模板引擎,可创建动态布局并增加编译任务. 可以很简单的复用代码. 您不需要手动维护和包含路径,因为 Laravel 具有自动加载功能. 该框架可...

    使用 laravel 的优势?

    下面是 laravel 的主要优点:

    • Laravel 具有 blade 模板引擎,可创建动态布局并增加编译任务.
    • 可以很简单的复用代码.
    • 您不需要手动维护和包含路径,因为 Laravel 具有自动加载功能.
    • 该框架可帮助您使用 LOC 容器制作新工具.
    • Laravel 提供了一个版本控制系统,可帮助简化迁移管理.

    1.关掉csrf验证

    全局关掉:打开文件:app\Http\Kernel.php,把这行注释掉:'App\Http\Middleware\VerifyCsrfToken'

    部分关掉:修改app\Http\Middleware\VerifyCsrfToken.php这个文件。

    在 protected $except = [] ,指定从 CSRF 验证中排除的URL

    示例:

    protected $except = [
      //关掉以api开头的请求
      'api/*',
      //关掉带有.htm的请求
      '*.htm*' 
    ];

    2.如何注册您的服务提供者?

    您可以在 config/app.php 配置文件中注册服务提供者,该配置文件包含一个数组,您可以在其中配置服务提供者的类名。

    3. Laravel 中的服务容器是什么

    服务容器是用于在 Laravel 中执行依赖注入的工具

    4.说一下依赖注入和依赖注入的类型.

    它是‘其中一种对象依赖于另一个对象’的技术。

    依赖注入有三种类型:

    • 构造函数注入
    • setter 注入
    • 接口注入.
    展开全文
  • 2021年PHP-Laravel面试题

    2021-02-02 17:18:29
    AccessToken 过期后只能让用户重新发起授权申请来获得新的 AccessToken 正确 错误 下列对 Laravel 的描述正确的是 在业务代码中应该通过 env() 函数读取 .env 文件中的值 路由模型绑定 (Route Model Binding)是...
  • 以下是经常问到的 Laravel 和 PHP 相关的面试问题,以便菜鸟以及有经验的应聘者找到合适的工作。 祝福看到的您早日找到理想工作!! 学习是人类进步的阶梯!!! 1) 什么是 Laravel ? Laravel 是一个开源的、广泛...
  • 91 个常见的 Laravel 面试题和答案

    千次阅读 2020-03-04 17:31:07
    以下是经常问到的 Laravel 和 PHP 相关的面试问题,以便菜鸟以及有经验的应聘者找到合适的工作。 1) 什么是 Laravel ? Laravel 是一个开源的、广泛使用的 PHP 框架。该平台主要用于利用 MVC 架构模式开发 web 应用...
  • 1) 什么是 Laravel ? Laravel 是一个开源的、广泛使用的 PHP 框架。该平台主要用于利用 MVC 架构模式开发 web 应用程序。Laravel 是在 MIT 许可下发布的。 因此,其源代码托管在 GitHub 上。它遵循可靠且准确的语言...
  • laravel面试及相关题型

    千次阅读 2019-09-04 10:57:31
    遗留又补充了一些 PHPer 的常见面试题留给大神们解答。 分库分表怎么设计 如何处理 MySQL 死锁? 谈谈你对闭包的理解 PHP 内存回收机制 如何解决 PHP 内存溢出问题 数据库优化的方法 简述 ...
  • 色色整理的PHP面试题,从基础到高级,想要应聘php工作的朋友可以参考下。招聘单位也参考的
  • 某家科技公司面试题(针对Laravel

    千次阅读 2019-03-11 20:03:13
    1、Laravel Ioc是什么?请简述Ioc的实现原理 控制反转(IOC)模式(又称DI:DependencyInjection)就是Inversion ofControl,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部...
  • 经典面试题-什么是ORM?

    千次阅读 2019-11-22 09:00:16
    对象关系映射(Object—Relational Mapping,简称ORM) 是一种为了解决面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将java 程序中的对象自动...
  • 三大框架一些很重要的面试题!!都是公司里面用问的,对于笔试很重要的这个!
  • 面试题相关链接

    2018-09-17 16:08:57
    https://blog.csdn.net/moneyshi/article/details/50786786
  • 面试题系列: 代码片段: :这里仅考虑红包分配自身,不考虑并发、超时退回等逻辑。 来自 相关 。 Laravel 入门教程: 本人去年自己写的 Laravel 系列教程,使用的4版,内容可能有些过时或错漏。博客连载地址为: ...
  • GET 与 POST 的区别 ** 显示有区别 ** get方法是将字符串拼接在地址栏后面可以看见 而post方法看不见 ** 传递的大小有区别 ** 具体大小和浏览器有关系,ie浏览器是2k其他浏览器的最大值可能不同,但是也比较小。...
  • 分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要...
  • laravel依赖注入

    千次阅读 2017-12-13 09:55:00
    laravel容器包含控制反转和依赖注入,使用起来就是,先把对象bind好,需要时可以直接使用make来取就好。  具体分析参照:http://laravelacademy.org/post/769.html 通常我们的调用如下。 $config = $container...
  • Laravel 作为现在最流行的 PHP 框架,其中的知识较多,所以单独拿...简述 Laravel 的生命周期 Laravel 采用了单一入口模式,应用的所有请求入口都是 public/index.php 文件。 注册类文件自动加载器 : Laravel...
  • Laravel、PHPer 面试可能会遇到的问题,看评论区不少小伙伴们被难倒,对于一些问题同样难倒了我(其实有很多啦),趁着周末有空,又总结梳理了一遍,顺便来答一波。由于个人技术水平有限,答案或许会有偏差,欢迎...
  • Laravel 中的服务容器是用于管理类的依赖和执行依赖注入的工具。 参考地址 依赖注入的原理? @overtrue  一句话解释:依赖注入只是一种模式:把当前类依赖的第三方实例通过参数传入的形式引入,但是...
  • # 后端研发工程师面试题(PHP/JAVA/Go) ## 一、PHP基础知识面试题 1. php如何处理大文件上传? 2. 分片上传的原理是什么? 3. 如何避免表单重复提交? 4. PHP 7 的内存回收原理?请详细描述ZendMM的工作原理 5. ...
  • 2019PHP面试题(持续更新中)PHP

    千次阅读 2019-09-18 14:00:33
    2019PHP面试题(持续更新中)PHP 1.悲观锁和乐观锁? 乐观锁只适合只有读没有写的操作, 悲观锁适合读写操作,但是读写操作可增加CPU的缓存失效率。 2.数据库的优化 合理的设计表结构,建立搜索引擎。 读写...
  • 探索下一次技术面试之前应该了解的前20个 Laravel 面试问题。 Q1:什么是Laravel? 主题: Laravel 难度: ⭐ Laravel 是一个免费的开放源代码 PHP Web 框架,由 Taylor Otwell 创建,旨在遵循模型-视图-控制器(MVC)...
  • 博主最近找工作,记录了不少面试题,有些还是挺值的学习的,这里记录一下。有些我会给出参考链接,有些需要大家自己百度了,持续补充。。 一、公司一 1、php的接口和抽象类有什么区别,应用场景有哪些 ...
  • Laravel、PHPer 面试可能会遇到的问题,看评论区不少小伙伴们被难倒,对于一些问题同样难倒了我(其实有很多啦),趁着周末有空,又总结梳理了一遍,顺便来答一波。由于个人技术水平有限,答案或许会有偏差,欢迎...
  • 一、单选(共29,每5分) 1.以下代码 a.php 输出的结果是? a.php 的代码如下: b.php的代码如下: A、foo in a B、什么也不输出 C、报错 D、foo in b 参考答案:C 答案解析: 答案是C 想让大家...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 954
精华内容 381
关键字:

laravel面试题