Blog

Make composer works on Digital Ocean

By Ivan Aldavert on Friday, March 2, 2018 - 19:41

When we try to install/update some stuff with composer, anyway we put -1 memory (or +1000) it still not working, to solve this we can create a swap file.

Here is the trick:

free -m

mkdir -p /var/_swap_

cd /var/_swap_

#Here, 1M * 2000 ~= 2GB of swap memory

dd if=/dev/zero of=swapfile bs=1M count=2000

mkswap swapfile

swapon swapfile chmod 600 swapfile

echo "/var/_swap_/swapfile none swap sw 0 0" >> /etc/fstab

#cat /proc/meminfo

free -m

Drupal 8 views: render entity vs views fields format

By Ivan Aldavert on Friday, March 2, 2018 - 19:35

Using a fresh install of drupal in simpletest.me, let's do these steps:

  • Ensure views is enabled
  • Enable Devel, Devel generate content and Web Profiler
  • Create one view with 2 page displays, one with "render content" and the other with "views fields"

 

page-render

This display uses render entity with Teaser view mod. This mod has body and image fields. Path is /article-render

 

page-fields

This display uses views fields, we have to set up field by field, in this case, we add the same fields that teaser view mod has.

 

Now let's create some articles with Devel Generate Content. yoursite/admin/config/development/generate/content", select article and do generate.

 

Now we have the content and two view pages, lets check with web-profiler which of those displays is more efficient. Our check is always after cleaning the caches, because the cache reduces the loading time to same.

 

 

CASE 1: view with render entity

render

render time

 

CASE 2: display with views fields

fields

fields

 

 

CONCLUSION:

Without caching the page, the views fields is more efficient because it is doing less queries than render content display. But in a real world, who set up pages without caching?

 

PS Build pages or blocks of content like list of teasers with view mods give us the opportunity to use the powerful of twig and set up custom html for this pieces of content. Instead, with views field we should manipulate the preprocess of views elements.