”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 我作为 Laravel 实习生的旅程

我作为 Laravel 实习生的旅程

发布于2024-08-06
浏览:859

My Journey as a Laravel Intern

通过塔米·阿莱姆

嗨,我是塔米·阿莱姆。让我带您经历作为 Laravel 实习生的激动人心的旅程。我的目标是获得行业经验,编写可读的代码,并深入理解框架。以下是这一切的经过,以及我面临的挑战和我一路上找到的解决方案。

在实习期间,我有三个主要目标:

行业经验:在专业环境中获得实践经验。

可读代码:编写干净、可维护且可读的代码。

框架理解:深入了解 Laravel 框架。

开发环境

我的旅程从设置开发环境开始。在这次实习之前,我使用前端架构与后端进行交互,要么通过 Blade 视图,要么通过与 Vite 捆绑的 JavaScript。所以,我并没有真正看到建立 CORS 之类的必要性。然后,我被介绍给了 Postman —— 哇,真是一个游戏规则改变者!

邮差

Postman 帮助我设置和编辑 HTTP 请求、传递参数和值以及管理身份验证和承载令牌。这拓宽了我对后端结构及其工作原理的理解。查看原始形式的数据并直接对其进行操作令人大开眼界。我发现看似复杂的后端操作比我最初想象的要简单。

作曲家

Composer 是另一个重要工具。我用它来安装软件包并严格遵守 PHP PSR-4 格式标准。当我严格地说时,我是认真的!哈哈。当我不遵循标准时,我遇到了错误,例如生成文档并意识到由于模型和表的额外空格或不正确的命名约定,我在命名空间中出现了错误。

项目设置

建立项目涉及几个关键步骤:

存储库管理

克隆存储库和设置我的环境一开始是相当困难的 — 哈哈,真是太棒了!有人向我介绍了 scribe:generate,这是一个生成文档的包。起初,我的反应是:“什么?!”运行特定类别的播种机是另一个挑战。与普通播种机相比,我不明白它们的用途,直到我意识到 php artisan db:seed --class=...Seeder 直接运行特定的播种机类,对于单独播种特定表或数据集很有用。

模型和数据处理

我突出显示了向模型和指定数据类型添加新属性时所需的参数。熟悉数据序列化和格式响应转换至关重要。我还学会了使用包含和默认包含来格式化特定数据,以及使用解析包含来将数据添加到响应中。

急切加载

预加载是我学到的美丽的事情之一。预加载不是在循环内执行新的 SQL 查询的延迟加载,而是执行单个查询来加载所有必要的数据。 with 助手对于高效的数据库查询至关重要,这让我研究了 Laravel 中可用的漂亮助手,它带来了多么大的变化!

查询范围和构建器

我使用控制器可用的查询范围来在转换数据之前获取数据。查询构建器也成为我简化数据检索的首选。

控制器

控制器处理各种请求类型(GET、POST、UPDATE)的基本逻辑。我学会了为 Scribe 文档编写端点和清晰的注释。使用操作将可重用代码提取到不同的控制器中,确保了干净的代码结构。在使用数据库时实现 try-catch 方法是另一个宝贵的教训。

观看次数

虽然没有广泛使用,但视图主要用于格式化邮件响应。

API开发

我学会了按照 RESTful 原则设计和实现 API,并使用 Laravel 内置的日志工具和 Postman 对其进行了测试。

这些知识进一步促使我构建和使用 Laravel 社交名流,集成 google auth 进行登录并使用 Laravel sainttum,实时显示在我的 GitHub 个人资料上。

挑战与解决方案

挑战

理解代码库最初很困难,特别是因为 Postman 中没有可用的收集路线。我必须构建它们并理解其结构,这有时需要额外的参数并减慢了我的开发过程。

我浅薄的 PHP 基础知识也影响了我的进步,导致我在任务上花费了额外的时间。

解决方案

为了克服这些挑战,我专注于学习基础知识,并通过在分配的任务之外在一个单独的分支工作进行练习。我深入了解 PHP,获取了诸如“Programming with GIO”、“PHP the Right Way”和 Laracasts  等资源 - 强烈推荐它们!

语法不记也没关系。哈哈,像这样的情况,我都是参考文档。阅读文档可以拓宽您对特定主题的理解。

总的来说,我与团队的合作经历非常出色。除了提供付费职位外,他们还提供理解和构建应用程序的帮助。与我合作的团队解释了要实现的任务,并在应对我面临的挑战时给出了快速响应。

版本声明 本文转载于:https://dev.to/tammy11/my-journey-as-a-laravel-intern-3bg8?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何从Google API中检索最新的jQuery库?
    如何从Google API中检索最新的jQuery库?
    从Google APIS 问题中提供的jQuery URL是版本1.2.6。对于检索最新版本,以前有一种使用特定版本号的替代方法,它是使用以下语法: https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js(google hosted...
    编程 发布于2025-02-07
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-02-07
  • 对象拟合:IE和Edge中的封面失败,如何修复?
    对象拟合:IE和Edge中的封面失败,如何修复?
    解决此问题,我们采用了一个巧妙的CSS解决方案来解决问题:高度:100%; 高度:auto; 宽度:100%; //对于水平块 ,使用绝对定位将图像定位在中心,以object-fit:object-fit:cover in IE和edge消除了问题。现在,图像将按比例扩展,保持所需的效果而不会失...
    编程 发布于2025-02-07
  • 如何在Java列表中有效计算元素的发生?
    如何在Java列表中有效计算元素的发生?
    计数列表中的元素出现在列表 中,在java编程中,列举列表中列举元素出现的任务来自列表。为此,收集框架提供了全面的工具套件。在这种情况下,Batocurrences变量将保持值3,代表动物列表中的“ BAT”出现的数量。 &&& [此方法是简单的,可以得出准确的结果,使其成为计算列表中元素出现的理...
    编程 发布于2025-02-07
  • 为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    网格超过身体,用100%grid-template-columns 问题:考虑以下CSS和HTML: position:fixed; grid-template-columns:40%60%; grid-gap:5px; 背景:#eee; 当位置未固定时,网格将正确显示。但是,当...
    编程 发布于2025-02-07
  • 如何使用FormData()处理多个文件上传?
    如何使用FormData()处理多个文件上传?
    )处理多个文件输入时,通常需要处理多个文件上传时,通常是必要的。可以将fd.append("fileToUpload[]", files[x]);方法用于此目的,允许您在单个请求中发送多个文件。 初始尝试 在JavaScript中,一种常见方法是:); 但是,此代码仅处理第一...
    编程 发布于2025-02-07
  • 如何在JavaScript对象中动态设置键?
    如何在JavaScript对象中动态设置键?
    如何为JavaScript对象变量创建动态键,尝试为JavaScript对象创建动态键,使用此Syntax jsObj['key' i] = 'example' 1;将不起作用。正确的方法采用方括号:他们维持一个长度属性,该属性反映了数字属性(索引)和一个数字属性的数量。标准对象没有模仿这...
    编程 发布于2025-02-07
  • 如何从PHP服务器发送文件?
    如何从PHP服务器发送文件?
    将文件发送到user
    编程 发布于2025-02-07
  • PHP阵列键值异常:了解07和08的好奇情况
    PHP阵列键值异常:了解07和08的好奇情况
    PHP数组键值问题,使用07&08 在给定数月的数组中,键值07和08呈现令人困惑的行为时,就会出现一个不寻常的问题。运行print_r($月份)返回意外结果:键“ 07”丢失,而键“ 08”分配给了9月的值。此问题源于PHP对领先零的解释。当一个数字带有0(例如07或08)的前缀时,PHP将...
    编程 发布于2025-02-07
  • 如何干净地删除匿名JavaScript事件处理程序?
    如何干净地删除匿名JavaScript事件处理程序?
    在这里工作/},false); 不幸的是,答案是否。除非在Creation中存储对处理程序的引用。要解决此问题,请考虑将事件处理程序存储在中心位置,例如页面的主要对象,请考虑将事件处理程序存储在中心位置,否则无法清理匿名事件处理程序。 。这允许在需要时轻松迭代和清洁处理程序。
    编程 发布于2025-02-07
  • HTML格式标签
    HTML格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2025-02-07
  • 微实验标准:它是评估系统性能的可靠工具吗?
    微实验标准:它是评估系统性能的可靠工具吗?
    [2代码或小型系统调用。它旨在确定特定操作完成所需的时间和资源。但是,了解Microbenching的作用和不涉及的是至关重要。什么是microbenchmarking是 的名称,Microbenchmarking着重于测量小型,特定的特定,特定的,特定的,特定的,特定的,特定的,特定的,特定的,特...
    编程 发布于2025-02-07
  • 如何有效地加入SQL中的表以从多列中检索数据?
    如何有效地加入SQL中的表以从多列中检索数据?
    [2 使用SQL Table Joins 从多个列中检索数据 本指南演示了如何有效地组合来自多个SQL表的数据以在各种列中检索信息。我们将重点介绍方法,突出显示其使用并解决Microsoft Access的特定注意事项。 [2 基于共享列值从两个或多个表中合并行。 结果表仅包含所有连接表中匹配的...
    编程 发布于2025-02-07
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    [2明确担心Microsoft Visual C(MSVC)在正确实现两相模板实例化方面努力努力。该机制的哪些具体方面无法按预期运行?背景:说明:的初始Syntax检查在范围中受到限制。它未能检查是否存在声明名称的存在,导致名称缺乏正确的声明时会导致编译问题。为了说明这一点,请考虑以下示例:一个符合...
    编程 发布于2025-02-07
  • 可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    </main> <section> ,但无法使其正常工作,如您所见。任何洞察力都将不胜感激! display:grid; { position:sticky; top:1em; z-index:1 1 ; { { { pos...
    编程 发布于2025-02-07

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3