Category : 教程系列

本系列的一部分: 如何使用 Laravel 和 Docker Compose 在 PHP 中构建链接登陆页面 Laravel是一个开源 PHP 框架,它提供了一组工具和资源来构建现代 PHP 应用程序。在这个基于项目的教程系列中,您将使用 Laravel 框架构建一个Links Landing Page应用程序,使用由 Docker Compose 管理的容器化 PHP 开发环境。 最后,您将拥有一个使用 Laravel 构建并通过 Artisan 命令管理的单页网站,您可以在其中将相关链接分享给社交渠道和演示文稿上的受众。 口才是由Laravel框架内默认包含的对象关系映射器(ORM)。它促进了与数据库表交互的任务,提供了一种面向对象的方法来插入、更新和删除数据库记录,同时还提供了一个用于执行 SQL 查询的流线型界面。 Eloquent 使用数据库模型来表示支持的数据库中的表和关系。数据库表的名称通常以复数形式从模型名称中推断出来。例如,命名的模型Link将links用作其默认表名。 您可以使用artisan make:model命令行帮助程序为您的应用程序生成新模型。要为您的links表创建一个新的 Eloquent 模型,请运行: docker-compose exec app php artisan make:model Link OutputModel created successfully. 这将生成一个包含准系统模型类的新文件。即使这个类没有明显的属性或方法,当通过facades操作模型时,您可以访问底层的 Eloquent 数据库类,这些类能够识别数据库表结构并将它们表示为全功能对象。 供您参考,这是自动生成的模型类: 应用程序/模型/Link.php <?php namespace App\Models; ..

Read more

介绍 TypeScript 越来越受欢迎。由于 TypeScript 是 JavaScript 的超集,因此使用它意味着在 V8 引擎能够理解它们之前将您的 TypeScript 文件编译为纯 JavaScript。您可以监视文件更改并自动编译。但有时,您只想运行脚本并获得结果。这就是ts-node切入点。使用ts-node,您可以跳过大惊小怪并轻松执行您的 TypeScript 脚本。 先决条件 要成功完成本教程,您需要具备以下条件: 您的机器上安装了最新版本的 Node。您可以按照如何安装 Node.js 和创建本地开发环境教程来完成此操作 熟悉npm. 要了解有关使用 的更多信息npm,请阅读如何将 Node.js 模块与 npm 和 package.json 一起使用教程 熟悉 TypeScript。这篇如何设置新的 TypeScript 项目文章是一个很好的起点。 第 1 步 – 入门 要开始工作,您需要安装typescript和ts-node: npm install typescript ts-node 既然ts-node是你可以运行一个可执行文件,没有什么对import或require在您的脚本。 如果您还没有可以使用的 TypeScript 项目,则可以直接使用此脚本进行测试ts-node: 脚本:reptile.ts class Reptile { private reptiles: Array<string> = ..

Read more

介绍 Docker 是一种流行的容器化工具,用于为软件应用程序提供一个文件系统,该文件系统包含它们运行所需的一切。使用 Docker 容器可确保软件无论部署在何处都能以相同的方式运行,因为其运行时环境是一致的。 一般来说,Docker 容器是短暂的,只要容器中发出的命令完成就可以运行。然而,有时应用程序需要在容器被删除后共享对数据的访问或保留数据。数据库、用户生成的网站内容和日志文件只是一些不切实际或不可能包含在 Docker 映像中但应用程序需要访问的数据示例。Docker Volumes提供了对数据的持久访问。 Docker 卷可以在创建容器的同一命令中创建和附加,也可以独立于任何容器创建并在以后附加。在本文中,我们将研究在容器之间共享数据的四种不同方式。 先决条件 要阅读本文,您需要一个 Ubuntu 20.04 服务器,其中包含以下内容: 具有 sudo 权限的非 root 用户。使用 Ubuntu 20.04的初始服务器设置指南解释了如何设置。 按照如何在 Ubuntu 20.04 上安装和使用 Docker 的步骤 1 和步骤 2中的说明安装 Docker 注意:尽管先决条件给出了在 Ubuntu 20.04 上安装 Docker 的说明,但docker只要安装了 Docker 并且已将 sudo 用户添加到docker组中,本文中针对 Docker 数据卷的命令应该可以在其他操作系统上运行。 步骤 1 — 创建独立卷 该docker volume create命令在 Docker 的 ..

Read more

作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 处理文件对于开发目的和非开发目的一样普遍。在日常计算机使用中,用户可能会在各种目录中的文件中读取和写入数据,以完成诸如保存下载的文件或访问要在其他应用程序中使用的数据等任务。同样,后端程序或命令行界面 (CLI) 工具可能需要将下载的数据写入文件以进行保存,或者数据密集型应用程序可能需要导出为JSON、CSV或Excel格式。这些程序需要与运行它们的操作系统的文件系统进行通信。 使用Node.js,您可以使用内置fs模块以编程方式操作文件。该名称是“文件系统”的缩写,该模块包含您在本地机器上读取、写入和删除文件所需的所有功能。Node.js 的这一独特方面使JavaScript成为用于后端和 CLI 工具编程的有用语言。 在本文中,您将使用该fs模块读取通过命令行创建的文件,创建并写入新文件,删除您创建的文件,并将第一个文件移动到不同的文件夹中。该fs模块支持同步、异步或通过流与文件交互;本教程将重点介绍如何使用异步的、基于Promise的 API,这是 Node.js 开发人员最常用的方法。 先决条件 您必须在计算机上安装 Node.js 才能访问该fs模块并按照教程进行操作。本教程使用 Node.js 版本 10.22.0。要在 macOS 或 Ubuntu 18.04 上安装 Node.js,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 的使用 PPA 安装部分中的步骤进行操作。 本文使用 JavaScript Promise 来处理文件,尤其是async/await语法。如果您不熟悉 Promise、async/await语法或异步编程,请查看我们关于如何在 Node.js 中编写异步代码的指南。 步骤 1 — 读取文件 readFile() 在这一步中,您将编写一个程序来读取 Node.js 中的文件。为此,您需要导入fs模块,这是一个用于处理文件的标准 ..

Read more

尽管本周对于 Vue.js 新闻来说似乎是一个相当缓慢的一周,但至少有一个重要的、关键的库已经曝光。该库是vue-ripple-directive!一旦你使用过它,你会想知道没有它你是如何生活的。它使您的应用程序能够使用简单的指令将 Material Design Ripples 添加到任何组件。 准备好开始了吗? 安装 通过 Yarn 或 NPM安装vue-ripple-directive: # Yarn $ yarn add vue-ripple-directive # NPM $ npm install vue-ripple-directive –save 然后注册指令: 主文件 import Vue from ‘vue’; import Ripple from ‘vue-ripple-directive’; import App from ‘App.vue’; // Register the ripple directive. Vue.directive(‘ripple’, Ripple); new Vue({ el: ‘#app’, render: h => h(App) ..

Read more

该系列的一部分: 如何使用 CSS 构建网站 本教程是使用 CSS创建和自定义此网站的系列的一部分,CSS 是一种用于控制网站呈现的样式表语言。您可以按照整个系列重新创建演示网站并熟悉 CSS 或将此处描述的方法用于其他 CSS 网站项目。 在继续之前,我们建议您了解一些 HTML 知识,HTML 是用于在 Web 浏览器中显示文档的标准标记语言。如果您不熟悉 HTML,可以在开始本系列之前先阅读我们如何使用 HTML 构建网站系列的前十个教程。 介绍 在本教程中,您将使用 HTML 和 CSS重新创建演示网站的顶部标题部分。如果您想尝试或个性化尺寸,您可以将 Sammy 的信息换成您自己的信息。您在此处使用的方法可以应用于其他 CSS/HTML 网站项目。 先决条件 要遵循本教程,请确保您已按照本系列如何设置 CSS 和 HTML 练习项目中的上一个教程中的说明设置必要的文件和文件夹。 将标题和副标题添加到您的网页标题 我们的网站标题包括标题(“Sammy the Shark”)、副标题(“SENIOR SELACHIMORPHA AT DIGITALOCEAN”)和一个小头像。这些元素被包装在一个<div>容器中,该容器使用 CSS 样式表中定义的类进行样式设置。您将通过添加文本和图像内容、为<div>容器创建一个类,然后将文本和图像内容包装在<div>分配了新创建的类的容器中来重新创建此部分。 要为您的网站添加标题和副标题,请<body>在index.html文件的开始和结束标记之间添加以下突出显示的代码片段。如果您想个性化您的网站,请将 Sammy 的信息换成您自己的信息: 索引.html . . . <body> <!–Header content–> <h1>Sammy ..

Read more

作者选择Creative Commons接受捐赠,作为Write for DOnations计划的一部分。 介绍 在本教程中,您将使用React context在多个组件之间共享状态。React 上下文是一个接口,用于与其他组件共享信息,而无需显式地将数据作为props传递。这意味着您可以在父组件和深度嵌套的子组件之间共享信息,或者将站点范围的数据存储在一个位置并在应用程序的任何位置访问它们。您甚至可以通过随数据一起提供更新功能来更新嵌套组件中的数据。 React 上下文足够灵活,可以用作项目的集中状态管理系统,或者您可以将其范围用于应用程序的较小部分。借助上下文,您可以在整个应用程序中共享数据,无需任何额外的第三方工具,只需进行少量配置。这为Redux 等工具提供了更轻量级的替代方案,后者可以帮助处理更大的应用程序,但对于中型项目可能需要太多设置。 在本教程中,您将使用上下文来构建使用跨不同组件的公共数据集的应用程序。为了说明这一点,您将创建一个网站,用户可以在其中制作自定义沙拉。该网站将使用上下文来存储客户信息、喜爱的物品和定制沙拉。然后,您将访问该数据并在整个应用程序中更新它,而无需通过 props 传递数据。在本教程结束时,您将学习如何使用上下文在项目的不同级别存储数据,以及如何访问和更新嵌套组件中的数据。 先决条件 你需要一个运行Node.js的开发环境;本教程在 Node.js 版本 10.20.1 和 npm 版本 6.14.4 上进行了测试。要在 macOS 或 Ubuntu 18.04 上安装它,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 的使用 PPA 安装部分中的步骤进行操作。 使用Create React App设置的 React 开发环境,删除了非必要的样板。要进行设置,请按照如何管理 React 类组件上的状态教程的步骤 1 — 创建空项目进行操作。本教程将state-context-tutorial用作项目名称。 您还需要具备 JavaScript 的基本知识(可以在How To Code ..

Read more

作为Write for DOnations计划的一部分,作者选择了技术教育基金来接受捐赠。 介绍 Slack是一个专为提高工作效率而设计的交流平台。它包括直接消息传递、公共和私人频道、语音和视频通话以及机器人集成等功能。Slackbot 是一个自动化程序,可以在 Slack 中执行各种功能,从发送消息到触发任务,再到针对特定事件发出警报。 在本教程中,您将使用Python编程语言构建一个 Slackbot 。Python 是一种流行的语言,以其简单性和可读性而自豪。Slack 提供了丰富的Python Slack API,用于与 Slack 集成以执行常见任务,例如发送消息、向消息添加表情符号等等。Slack 还提供了一个Python Slack Events API用于与Slack 中的事件集成,允许您对消息和提及等事件执行操作。 作为一个有趣的概念验证,它将展示 Python 及其 Slack API 的强大功能,您将构建一个CoinBotSlackbot,它可以监控通道,并在触发时为您抛硬币。然后,您可以修改您的应用程序CoinBot以满足任意数量的稍微更实际的应用程序。 请注意,本教程使用 Python 3,与 Python 2 不兼容。 先决条件 为了遵循本指南,您需要: 您可以在其中安装应用程序的 Slack 工作区。如果您创建了工作区,您就拥有这种能力。如果您还没有,可以在Slack 网站上创建一个。 (可选)具有用于开发的公共 IP 地址的服务器或计算机。我们建议全新安装 Ubuntu 20.04、具有sudo特权的非 root 用户并启用 SSH。您可以按照本指南初始化您的服务器并完成这些步骤。 您可能希望在具有公共 IP 地址的服务器上测试本教程。Slack 需要能够向您的机器人发送消息等事件。如果您在本地机器上进行测试,您将需要通过防火墙将流量转发到您的本地系统。如果您正在寻找一种在云服务器上进行开发的方法,请查看有关如何通过 Remote-SSH 插件使用 Visual ..

Read more

介绍 了解网络是在 Internet 上配置复杂环境的基本部分。这在尝试有效地在服务器之间进行通信、开发安全网络策略以及保持节点组织时会产生影响。 在之前的指南中,我们讨论了一些基本的网络术语。您应该仔细阅读该指南,以确保您熟悉那里介绍的概念。 在本文中,我们将讨论一些涉及设计或与联网计算机交互的更具体的概念。具体来说,我们将介绍用于分组 IP 地址的网络类、子网和 CIDR 表示法。 了解 IP 地址 网络上的每个位置或设备都必须是可寻址的。这意味着可以通过在预定义的地址系统下引用其名称来访问它。在网络分层的正常 TCP/IP 模型中,这是在几个不同的层上处理的,但通常当我们提到网络上的地址时,我们谈论的是 IP 地址。 IP 地址允许通过网络接口访问网络资源。如果一台计算机想要与另一台计算机通信,它可以将信息寻址到远程计算机的 IP 地址。假设两台计算机在同一个网络上,或者中间的不同计算机和设备可以跨网络转换请求,那么这些计算机应该能够相互访问并发送信息。 每个 IP 地址在其自己的网络上必须是唯一的。网络可以相互隔离,并且可以桥接和转换以提供不同网络之间的访问。一个称为网络地址转换的系统允许在数据包穿越网络边界时重写地址,以允许它们继续到达正确的目的地。这允许在多个隔离网络上使用相同的 IP 地址,同时如果配置正确,仍然允许这些网络相互通信。 IPv4和IPv6的区别 目前在系统上广泛实施的 IP 协议有两个修订版:IPv4 和 IPv6。由于协议的改进和 IPv4 地址空间的限制,IPv6 正在慢慢取代 IPv4。简而言之,对于通过 IPv4 提供的地址数量而言,世界现在有太多的互联网连接设备。 IPv4 地址是 32 位地址。地址的每个字节或 8 位段由句点分隔,通常表示为 0-255 的数字。尽管这些数字通常以十进制表示以帮助人类理解,但每个段通常称为一个八位字节,以表达它是 8 位表示的事实。 典型的 IPv4 地址如下所示: 192.168.0.5 每个八位字节中的最低值为 0,最高值为 ..

Read more

介绍 Terraform模块通过将它们的资源分组在一起来封装基础设施的不同逻辑组件。您可以稍后通过可能的自定义重新使用它们,而无需在每次需要时重复资源定义,这对大型且结构复杂的项目有利。您可以使用您定义的输入变量自定义模块实例,也可以使用输出从中提取信息。除了创建自己的自定义模块之外,您还可以使用在Terraform Registry 上公开发布的预制模块。开发人员可以使用您创建的模块等输入来使用和自定义它们,但它们的源代码存储在云端并从云端提取。 在本教程中,您将创建一个 Terraform 模块,该模块将在负载均衡器后面设置多个 Droplet 以实现冗余。您还可以使用for_each与count该Hashicorp配置语言(HCL)的循环功能,在同一时间部署模块的多个定制实例。 先决条件 DigitalOcean 个人访问令牌,您可以通过 DigitalOcean 控制面板创建。可以在此链接中找到执行此操作的说明:如何生成个人访问令牌。 Terraform 安装在您的本地计算机上,并使用 DO 提供程序设置了一个项目。完成步骤1和步骤2中的如何使用Terraform与DigitalOcean教程,并确保该项目命名文件夹terraform-modules,而不是loadbalance。在步骤 2 中,不要包含pvt_key变量和 SSH 密钥资源。 熟悉 HCL 数据类型和循环。有关更多信息,请参阅如何使用 Terraform 变量、依赖项和条件提高灵活性教程。 熟悉 Terraform 输出及其用法。您可以按照如何使用 Terraform 输出管理基础设施数据教程来了解它们。 注意:本教程已专门使用 Terraform 进行了测试0.13。 模块结构和优势 在本节中,您将了解模块带来的好处、它们通常放置在项目中的位置以及它们的结构方式。 创建自定义 Terraform 模块以封装在较大项目中经常一起使用和部署的连接组件。它们是自包含的,只捆绑了它们需要的资源、变量和提供者。 模块通常存储在项目根目录的中央文件夹中,每个模块都在其各自的子文件夹下。为了保持模块之间的清晰分离,始终将它们构建为具有单一目的,并确保它们从不包含子模块。 当您发现自己以不频繁的自定义重复它们时,从您的资源方案创建模块很有用。将单个资源打包为模块可能是多余的,并且会逐渐消除整体架构的简单性。 对于小型开发和测试项目,没有必要合并模块,因为在这些情况下它们不会带来太大的改进。具有定制能力的模块是复杂结构项目的构建元素。开发人员将模块用于更大的项目,因为它具有避免代码重复的显着优势。模块还提供了一个好处,即定义只需要在一个地方修改,然后将通过基础设施的其余部分传播。 接下来,您将在 Terraform 项目中定义、使用和自定义模块。 创建模块 在本节中,您将定义多个 Droplet 和一个负载均衡器作为 Terraform 资源并将它们打包到一个模块中。您还将使用模块输入使生成的模块可自定义。 您将模块存储在名为 的目录中droplet-lb,位于名为的目录下modules。假设您位于terraform-modules作为先决条件的一部分创建的目录中,请通过运行以下命令同时创建: mkdir ..

Read more