【发布时间】:2018-07-07 09:41:07
【问题描述】:
我是一名 PHP 程序员。我是 Drupal 的新手。我想成为一名 Drupal 开发人员。我应该开始学习版本 7 还是 8。
【问题讨论】:
-
感谢接受!快乐的 Drupal ...
标签: drupal drupal-7 drupal-modules drupal-views drupal-8
我是一名 PHP 程序员。我是 Drupal 的新手。我想成为一名 Drupal 开发人员。我应该开始学习版本 7 还是 8。
【问题讨论】:
标签: drupal drupal-7 drupal-modules drupal-views drupal-8
类似于“你如何吃大象”的问题(答案:一次 1 个字节......),我认为你应该尝试制定一些计划(路线图),它基本上由 4 个主要阶段组成:
(很多)关于每个阶段的更多详细信息如下......我很确定这是一种有效的方法......主要是因为这是我自己开始使用 Drupal 的方式......虽然我仍然试图完成我的 Drupal 之旅(以继续获得更多 Drupal 经验)。
如果您已经了解 HTML、PHP、JS、CSS 等,它肯定会帮助您开始使用 Drupal。
但根据我的经验,这些技能并不是跟上 Drupal 最重要的技能。您可以“即时(在工作中?)”了解它们。具体到 PHP,在 Drupal 的上下文中,你只需要知道你可以用 PHP 做的所有事情的一个子集。
很明显,您需要一台计算机,并且(至少偶尔)一个有效的互联网连接和一个电子邮件 ID。至少要将 Drupal、贡献的模块等下载到您自己的计算机上。
稍后,当您的网站准备好向全世界展示时,您还需要:
托管该 Drupal 站点的一些托管服务提供商。
域名(DNS 注册)。
要真正能够在您自己的计算机上使用 Drupal 网站,您需要典型的软件,这些软件类似于 Drupal 的先决条件。以下是所谓的“堆栈”(通常也称为 WAMP、MAMP 或 LAMP)的列表:
适用于您计算机的操作系统(Windows、Mac 或免费的 Linux)。
一个网络服务器(比如免费的 Apache,...)。
一个 DBMS(比如免费的 MySQL)。
PHP(这里没有其他语言,但是...免费)。
一些典型的实用程序,例如:
以诸如.tar 或.zip 之类的存档格式解压文件的东西,因为 Drupal 及其贡献的模块是以这些格式下载的。
文本编辑器(如记事本、notepad++、您最喜欢的编辑器等)。
FTP 客户端,例如 FileZilla(将您的站点从本地环境上传到实时服务器)
设置所需的先决条件(如上一条)可能需要一些工作(和/或挑战)。但是,有一些很棒的软件包可以大大减少所需的工作量(和所需的技能),例如(选择您喜欢和/或适合您的任何选项,不完整的列表!):
VirtualBox 与QuickStart 结合使用(奖励:预装了 GIT、Drush 等)。
XAMPP。
当我被问到如何开始使用 Drupal 的问题时,我总是指向 Climbing the Drupal ladder(来自著名的 Dries ...)。它只有一张图表,但其中包含大量信息和价值(一张图片价值超过 1000 个字......)。
这是一个很好的大纲,可以在“Drupal 入门”会议中使用。任何对 Drupal 有点熟悉的人都应该能够解释其中提到的大部分项目。
它也有以下变体:
DrupalLadder.org 网站,其中包含(或链接到)帮助人们了解 Drupal 并为 Drupal 做出贡献的课程和材料。该站点帮助 Drupal 用户组开发、共享和开发用于学习冲刺和问题冲刺的材料。
Drupal Ladder 安装配置文件(仅限 alfa 版本,并且缺少一些安全更新...)。
如今,大约有 17,000 个贡献的模块和/或主题。有大量(数千……)很棒的模块/主题,还有很多隐藏的宝石。因此,在深入编写自定义模块/主题之前,请三思(或 3 次?)。问自己一个问题“几年后谁来维护它们?”。
但是,您经常会遇到不止 1 个贡献的模块或主题。这是一个示例:您应该使用哪个贡献模块在 Drupal 中创建图表? ...做出选择,例如通过 Comparison of charting modules。但是,如果您正在寻找,您会选择哪个模块:
这时您需要制定一些标准来选择最合适的标准,如“Maintenance scorecards”中所示(您可以将它们用于许多其他 Drupal 主题,因此不仅适用于图表) .
很难找到不使用(令人惊叹的)Views 模块的网站,但是入门并不明显(有很多东西要学习)。我通过关于 Views 模块的免费 set of 30 video tutorials 了解了很多关于这个模块的知识。
结合Flag、Rules 和Message 模块,已经可以提供很多站点功能。要开始使用 Rules,请查看 32 个(!!!)很棒的免费视频教程 Learn the Rules framework,分为 7 个章节。 Flag 模块有一个类似的set of 8 video tutorials。
因此,请务必充分了解/了解几乎所有网站中仅使用“魔术 4”即可完成的所有令人惊奇的事情。几个示例:
有关 Drupal 和许多贡献模块的文档以各种格式提供,例如:
Drupal.org 上的每个贡献模块都有一个“项目页面”,位于类似 https://www.drupal.org/project/issues/abc 的位置,而 abc 是模块的“命名空间”(并不总是与项目页面的标题完全相同) .可以在项目页面上找到指向其相应“问题队列”的多个链接,或者只使用像 https://www.drupal.org/project/issues/abc 这样的 URL。
问题队列(问题的搜索结果)提供各种搜索功能和/或过滤器。即使您不是“搜索”特定问题,而只是浏览这些问题,您也可以通过查看这些问题学到很多东西。很多时候,“一些”问题中包含的重要(关键)信息(尚未)包含在与模块相关的文档中。
就我而言,当我第一次开始使用 Forena 时,我一直在迭代它的问题队列,并且偶尔会发布新问题。
作为模块(共同)维护者,我尝试通过以下社区文档页面中提到(超链接)的“问题”列表将模块用户指向这些有趣的问题:Charts HowTos、Forena HowTos、@987654350 @。注意:后来我开始在Drupal.SE 上添加类似的链接到有趣的问题...
有一些专门针对 Drupal 的有趣播客,它们还有一个很棒的网站,其中包含指向每个主题所涵盖主题的各种超链接。虽然有很多,但这里是我最喜欢的(+ 链接到我通过它们了解到的主题的答案):
示例:How can I make a gallery of “boxes” of content consisting of an image and some text?
示例:Can I move distribution profile modules from profile folder to sites/all/modules?
仅供参考:我在遛狗的同时“从这些播客中学习”(+ 获得想法)。你也可以在通勤、锻炼、割草、准备饭菜等时这样做。
在想飞之前先学会走路……所以开始使用典型的管理界面 (UI) 构建/维护 Drupal 站点。如:
但是,当您觉得自己有足够的经验,并且开始足够了解和了解 Drupal 时,您应该投资于了解 Drush。完成后,您会想知道“没有 Drush 我怎么能在 Drupal 中工作?”。对于上面的每个项目符号(以及更多项目符号),有一种方法可以使用 Drush。
Drupal 站点主要由 2 个主要部分组成:数据库(通常在 MySQL 中)和 代码(主要是 PHP,还有 JavaScript、CSS 等)。 Drupal 核心,它的贡献模块,以及自定义模块都在“代码”中。 Git 用于该代码的“软件变更管理”(SCM)部分。
强烈建议“尽快”开始使用 GIT(使用后,您会想知道“如果没有它,我将如何在 Drupal 中工作?”)。 Git 通常用于主题/任务,例如:
Drupal 很大,实际上很大。没有人(甚至不是 Dries)可以做/知道 Drupal 中的所有事情。因此,请尝试找到您感兴趣的领域(或几个领域)。如果可以,请寻找您已经在其他(非 Drupal)领域也有经验的领域。
就我而言,它是(是)软件变更管理和商业智能(报告)。这就是我现在“参与”的贡献模块(图表、报告等)的原因......以及我对即将推出的“配置管理计划”的兴趣。
另一个要加快 Drupal 的重要方面是您有时间从“经验”和“从犯错”中学习。从网站建设者开始似乎是最明显的起点。
您可以从那里移动/演变为 Drupal 开发人员(后端)、Drupal Themer(前端)或 Drupal 多面手等角色。这似乎也符合最近的 Drupal 认证计划。
备注:如何开始担任这些角色,似乎超出了这个问题的范围。
您一定以前看过:“为软件而来,为社区而留”。如果没有,您是否访问过www.drupal.org?在主页的左上角看到了吗?如果您是 Drupal 的新手,您可能想知道这到底意味着什么。以下是一些体验的建议:
此项目符号故意留空...因为它的“编号”...您是否注意到编号从 0 开始? ...弥补这个缺失的数字...
与其他 Drupal 同行面对面会面需要付出更多努力(而且成本更高),但您会得到很多回报。以下是一些可供选择的选项:
参加Drupal Cons,这些都是大型会议,每个大陆每年大约1个,相对昂贵(旅行,酒店,注册)。通用语言是英语(尽管在拉丁美洲也有例外,我相信它是西班牙语)。下一个出现在Barcelona,2015 年 9 月 21 日至 25 日(我已注册...)。如果你不能参加(或者错过了一些会议,而忙于社交等),去寻找关于几十个会议的视频。
参加 Drupal 夏令营,这些夏令营更本地化并且(方式)更小。它们通常按国家和/或州以您自己的语言显示。
参加 Drupal Sprints,在那里您不仅会做出贡献(= 回馈社区),还会找到愿意在需要时帮助、指导和指导您的其他人。
George@Drupal.org(至少对我而言)是在 Keynote (from Dries)(slide 76/198)期间在阿姆斯特丹举行的 DrupalCon 2014 上首次介绍的。查看这些幻灯片,并观看电影以了解 George 的全部内容。
然后停止“等待乔治”,而是开始表现得像乔治一样。即使这是具有挑战性的事情(困难、重大努力等)。当你完成后,你肯定会学到一些东西,而且可能还有很多……
如果您正在寻找有关这方面的好例子的灵感,请不要再想“D8 什么时候发布?”。相反,“参与为 D8 的发布做出贡献”......并继续使用 D7 构建网站,直到 D8 准备好(并且足够成熟)。
除了Novice code contribution guide 中详细介绍的内容(关于创建补丁以向 Drupal 贡献“代码”)之外,还有许多社区文档需要工作,并且可以由新手用户完成(通常标记为“新手”)。
对于需要更好/更多文档的模块也是如此。实际上,这就是我如何从 Drupal 用户/管理员“晋升”为模块共同维护者和模块所有者的方式。请参阅HELP Reports reorganization(“只是”1 个问题......)了解我是如何开始这样做的。
此类贡献将有助于“建立您的声誉”,并可能解决先有鸡还是先有蛋的问题,从而开始使用 Drupal(Drupal 中的大多数工作都需要特定 Drupal 领域的知识/经验)。
任何 Drupal 站点都由 2 个主要部分组成:
代码从 Drupal.org 下载,例如 Drupal 核心和贡献模块或自定义模块。
配置,存储在 Drupal 数据库中(通常是您使用 Drupal 管理屏幕执行的任何操作)。
管理代码(例如在 2 个或更多环境之间迁移或同步)相对容易。可以使用各种工具(例如 GIT 等)来实际执行此操作。
但是,您还需要管理 Drupal 站点的配置。没有任何配置的站点就像您甚至没有运行过install.php 脚本的站点。以下是一些关于配置的示例:
install.php 脚本,您就开始输入有关您的 Drupal 站点的配置数据(站点名称、站点标语等)。因此,每当有关此类配置项的某些内容发生更改或需要迁移到另一个站点时,您都需要正确管理(并保护?)这一切。否则,您的网站(部分)可能会崩溃。
这就是最初引入这些贡献模块的原因:
尽管这些模块在管理配置方面增加了很多价值,但它们也有弱点。这就是为什么Configuration Management Initiative (=CMI) 是introduced。 CMI 计划作为 Drupal 8 的一部分发布。
以上列表不完整(仍然...)。此处可能添加的其他主题:
培训计划是什么样的?
熟悉other modules,至少熟悉那些有 高排名,还能搜索隐藏的宝石。
了解用于显示内容的贡献模块,例如 Display Suite 和/或 Panels。然后检查您是否可以回答诸如“Panels Mini-Panels vs Block Regions vs Display Suite vs Stylizer vs Page Manager vs Theme”之类的问题。了解 Panels 的一个很好的资源是关于 Learn Page manager 的(免费)视频培训。 面板使用“页面管理器”,这是Chaos tool suite (ctools)的子模块之一。
熟悉构建多语言网站(使用i18n)。
了解如何使用“基础主题”,例如Zen、Omega 或Bootstrap(其中大部分支持 HTML5、响应式、有很多配置选项等) .并探索与它们相关的各种“子主题”(也可从 Drupal.org 下载)。
提高您的一些技术技能,例如 SQL 和正则表达式。
回顾和学习剖析 Drupal distributions。
如何获得更多经验?
寻找 Drupal 导师(+ 接受其他人的邀请成为他们的……)。
在IRC 上与 Drupal 社区聊天。
参加冲刺。
了解 Drupal 部署(开发、阶段、QA、产品)。
如何瞄准黄金摇篮?
工作流程自动化。
自动化测试。
应用软件重用(功能、drush make、安装配置文件等)。
为 D8 做好准备(Symphony、Twig、OOP、CMI、服务器先决条件……)。
【讨论】:
TL/DR:到目前为止,Drupal 8 是更好的选择!
绝对选择 Drupal 8! Drupal 7 仍在使用,但我认为大多数人现在正在切换到 8。现在几乎所有的 contrib 模块都可用于 8。 我唯一能想到的我可能(但可能不会)使用 D7 的是一个商业网站(网上商店)。上次我检查这些模块并没有完全移植到 D8,但大部分都可用。
1) 弄清楚如何在您的计算机上安装 DrupalVM,或者使用 composer 和 drush 获取支持 Drupal 的虚拟主机。
2) 在您的 drupalvm 或虚拟主机上设置站点并进行实验,在 Drupal 中构建基本站点非常简单
3) 找到一些预制(免费)主题并安装它们,您可以从那里创建自己的主题,或者只是编辑现有主题
4) 很多东西已经存在,几乎任何您能以贡献模块的形式想到的基本功能,使用它们!
5) 如果您想创建自己的网站布局,请开始学习 CSS、SCSS、Twig、JavaScript...
6) 如果您想在您的网站上为高级自定义功能创建自己的模块,请开始学习 PHP
您无需编程即可创建出色且美观的 Drupal 网站。
如果您想学习编程,最好学习 Laravel 或 CakePHP 或任何类似框架。
虽然您也可以在 Drupal 中进行大量自定义编程。
【讨论】:
Drupal 7 有点类似于 Drupal 6。另一方面,Drupal 8 在后端看起来像 Drupal 7,但在底层差异很大。 D8 基于 symfony,更面向对象,可能写得更好(更干净)但也更需要资源。
Drupal 7 是一个非常成熟的版本,您拥有各种经过良好测试的模块,可以满足各种需求。它在 PHP 5.x 上也可以正常工作,但在 PHP 7.x 上,某些模块可能会拒绝工作 - 我不建议在 PHP 7.x 上运行 Drupal 7 站点。
Drupal 8 还没有那么成熟,D7 中的许多模块仍然缺少 D8 或者它们处于 beta 状态。 D8 对 PHP 7.x 的支持要好得多。
所以,由您决定。如果您需要稳定的 CMS,现在有很多模块可供使用,并且您不关心 PHP 7.x,那么 D7 适合您。
但是,如果您打算在 PHP 7.x 上长期使用它,想要一些面向未来的解决方案,那么最好选择 D8。请记住,许多托管公司计划仅保留 PHP 7.x 并取消对 PHP 5.x 的支持
【讨论】:
作为一名专业的 Drupal 开发人员,我建议您观看 Drupalize Me 并关注 Getting Started - Background & Prerequisites (Drupal 8) 会不会。当然,看书和看书还不足以成为专家,你应该多练习,写一些自定义模块,使用 Drupal API 等等。
还可以跟踪Weekly Drop。我总是查看他们的帖子。
【讨论】: