drupal 8 lessons learned

8
Drupal 8 Lessons Some things I think I know about D8 from a couple projects.

Upload: aaron-crosman

Post on 24-Jan-2017

888 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Drupal 8 lessons learned

Drupal 8 LessonsSome things I think I know about D8 from a couple

projects.

Page 2: Drupal 8 lessons learned

AllSouth.org

Page 3: Drupal 8 lessons learned

BeValuant.com

Page 4: Drupal 8 lessons learned

Cyberwoven.com (headless Angular)

Page 5: Drupal 8 lessons learned

What’s not new

● Information architecture tools:

○ Nodes

○ Fields

○ Taxonomy

○ Menus

● The constant hunt for modules that do what you’re doing

○ Many are still missing, but new things arrive daily.

● The lack of a clear line between front-end and back-end (more in a sec).

Page 6: Drupal 8 lessons learned

Things needed to survive

1. New build and coding standards.

2. An understanding about composer vs drush vs drupal console.

3. NGinx is not for the faint of heart: no one has published a complete setup guide yet.

4. If you have windows you have pain (twig upsets NTFS).

5. Core patches tend to be non-optional.

6. Cache tags are great, but require learning.

7. Twig is great, but requires learning and discipline.

a. People are starting to do things in twig cause they can, not cause they should.

8. The API changes are coming all the time and make things interesting.

Page 7: Drupal 8 lessons learned

What’s so great?

● Better integration with CKEditor (files and images can both be handled right).

● Symfony is allowing integrations with 3rd party tools to come online quickly.

● Some things are now surprisingly easy (API integrations).

● The two core base themes do not require keelhauling to make viable.

○ We’re using stable. Classy is still a bit heavy, but way better than D7.

● You get to write modern code (although the namespacing is a bit Java-esc)

Page 8: Drupal 8 lessons learned

XML to JSON made easy $client = new Client(); try{ $res = $client->get($config->get('api_endpoint'), [ 'http_errors'=>false, 'query' => [ 'key'=>$config->get('coop_api_key'), 'cuname'=>$searchSet, 'loctype'=>'A', 'zip'=>$request->get('zip'), 'maxradius'=>$range, 'maxresults'=>$limit, ], ]); $decoderRing = new XmlEncoder(); $xml = $decoderRing->decode($res->getBody()); return new JsonResponse($xml); } catch (RequestException $e) { throw new HttpException($this->t('Unable to process request')); }