Exposing reverse entity reference fields in Drupal

Entity references in Drupal is the mechanism used to do some "proper" (sorry for the quotes but what you can achieve with Drupal is years behind a real ORM such as the Entity Framework in terms of usability, reliability, flexibility and overal quality) data modeling without having to write everything from scratch including queries, widgets and storage. 


Download SQL Server Native Client: sqlncli



PHP COM class: consuming .Net from PHP

The COM class is part of the COM_DOTNET extension that is part of the PHP core.

COM class allows you to instantiate an OLE compatible COM object and call its methods and access its properties. You can use this technique to call .Net Framework assemblies or COM components such as Word, Excel and other Microsoft Office tools.

In this guided example you will learn how to call the Microsoft Word interop component from PHP, but you can use this same procedure with any .Net or COM type on your system.


Twig PHP extension binaries for Windows

We were not able to find a compiled version of the Twig PHP C extension for windows so we compiled them from PHP 5.6 NTS. Download here.

If you need a binary for another platform or PHP version, contact us.

Are you running PHP on Windows or Azure? Consume the .Net framework from PHP thanks to NetPhp.


Drupal 8 performance: enabling the classloader cache

Drupal 8 is using some of the PHP language features that make PHP a "more or less decent" programming language and one of them is Autoloading. But because autoloading in PHP leaves the real autoloading job to userland code this can easily have very nasty performance implications.

If you want to use Autoloading now in Drupal 7 check out the extremely useful XAutoload module.


Drupal 8 Performance: Moving the service container cache away from the database

Drupal relies on pluggable cache backends to store cache data such as Memcache, Wincache, Database, etc. The default storage backend is the Database, but Drupal being a very cache intensive application (even more in Drupal 8) you want to get better performance by using faster backends that will yield lower latency and scale better.

Moving caching away from the database is done by replacing the caching services by ones that do not rely on the database. You define the services in your services.yml file and the binaries routing in settings.php:



NetPhp User Guide


Importing Excel data with PHP, OpenXML and SpreadsheetLight: a Drupal example

In this article you will learn how to manipulate Excel files from PHP using the OpenXML specification and the SpreadsheetLight library.

OpenXML is an open source specification that is used to build all Office 2007 and beyond document formats including Word and Excel. SpreadsheetLight builds on top of the standard OpenXML library to make Excel manipulation a piece of cake.


Drupal: Add new operators to views filters (such as contained in CSV) or how to override default view's handlers

Today I'm going to show you how to turbo boost Drupal's default views filters with an example on how to add  a "Conatained in CSV" operator for Numeric and String filters.

Imagine a user wants to perform a batch operation on entities with ID's X, Y and Z. Unless they all appear on the same page, or you set the page size to inifinte this is impossible because Views Bulk Operations won't let you manually pick items between searches and/or pages.

We want something like this to happen:


Fixing Drupal site locks during menu rebuild

This is a follow up to the previous post Database Transactions in Drupal where we saw in detail how little attention transaction management has had (and still has) in Drupal.

In this article we will see:



Subscribe to Drupal On Windows RSS