Query Cache
Added several static entities to L2 doctrine cache ( summit_types, event_types, presentation_categories) also improved some queries. Change-Id: Ic7d6ddcb9f2f7d9497fc3c0a0e653b94d721b736
This commit is contained in:
@@ -136,6 +136,7 @@ abstract class AbstractSerializer implements IModelSerializer
|
||||
$new_values = array();
|
||||
foreach ($mappings as $attribute => $mapping) {
|
||||
$mapping = preg_split('/:/',$mapping);
|
||||
if(!in_array($mapping[0], $fields)) continue;
|
||||
$value = call_user_func( array( $this->object, 'get'.$attribute ) );
|
||||
if(count($mapping) > 1)
|
||||
{
|
||||
@@ -175,13 +176,7 @@ abstract class AbstractSerializer implements IModelSerializer
|
||||
}
|
||||
$values = $new_values;
|
||||
}
|
||||
//check requested fields
|
||||
if(count($fields) > 0) {
|
||||
foreach ($values as $field => $value) {
|
||||
if (in_array($field, $fields)) continue;
|
||||
unset($values[$field]);
|
||||
}
|
||||
}
|
||||
|
||||
return $values;
|
||||
}
|
||||
}
|
||||
@@ -260,7 +260,7 @@ class Presentation extends SummitEvent
|
||||
}
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="PresentationCategory")
|
||||
* @ORM\ManyToOne(targetEntity="PresentationCategory", fetch="EXTRA_LAZY")
|
||||
* @ORM\JoinColumn(name="CategoryID", referencedColumnName="ID")
|
||||
* @var PresentationCategory
|
||||
*/
|
||||
|
||||
@@ -20,6 +20,7 @@ use Doctrine\Common\Collections\ArrayCollection;
|
||||
* Class PresentationCategory
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="PresentationCategory")
|
||||
* @ORM\Cache(usage="NONSTRICT_READ_WRITE", region="summit_presentation_category_region")
|
||||
* @package models\summit
|
||||
*/
|
||||
class PresentationCategory extends SilverstripeBaseModel
|
||||
|
||||
@@ -417,7 +417,7 @@ class SummitEvent extends SilverstripeBaseModel
|
||||
}
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="SummitEventType")
|
||||
* @ORM\ManyToOne(targetEntity="SummitEventType", fetch="EXTRA_LAZY")
|
||||
* @ORM\JoinColumn(name="TypeID", referencedColumnName="ID")
|
||||
* @var SummitEventType
|
||||
*/
|
||||
@@ -441,7 +441,7 @@ class SummitEvent extends SilverstripeBaseModel
|
||||
}
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="SummitAbstractLocation")
|
||||
* @ORM\ManyToOne(targetEntity="SummitAbstractLocation", fetch="EXTRA_LAZY")
|
||||
* @ORM\JoinColumn(name="LocationID", referencedColumnName="ID")
|
||||
*/
|
||||
private $location = null;
|
||||
@@ -485,7 +485,7 @@ class SummitEvent extends SilverstripeBaseModel
|
||||
}
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="models\summit\SummitType")
|
||||
* @ORM\ManyToMany(targetEntity="models\summit\SummitType", fetch="EXTRA_LAZY")
|
||||
* @ORM\JoinTable(name="SummitEvent_AllowedSummitTypes",
|
||||
* joinColumns={@ORM\JoinColumn(name="SummitEventID", referencedColumnName="ID")},
|
||||
* inverseJoinColumns={@ORM\JoinColumn(name="SummitTypeID", referencedColumnName="ID")}
|
||||
@@ -514,7 +514,7 @@ class SummitEvent extends SilverstripeBaseModel
|
||||
}
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="models\main\Company", inversedBy="sponsorships")
|
||||
* @ORM\ManyToMany(targetEntity="models\main\Company", inversedBy="sponsorships", fetch="EXTRA_LAZY")
|
||||
* @ORM\JoinTable(name="SummitEvent_Sponsors",
|
||||
* joinColumns={@ORM\JoinColumn(name="SummitEventID", referencedColumnName="ID")},
|
||||
* inverseJoinColumns={@ORM\JoinColumn(name="CompanyID", referencedColumnName="ID")}
|
||||
|
||||
@@ -18,6 +18,7 @@ use Doctrine\ORM\Mapping AS ORM;
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="SummitEventType")
|
||||
* @ORM\Cache(usage="NONSTRICT_READ_WRITE", region="summit_event_type_region")
|
||||
* Class SummitEventType
|
||||
* @package models\summit
|
||||
*/
|
||||
|
||||
@@ -19,6 +19,7 @@ use Doctrine\Common\Collections\ArrayCollection;
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="SummitTicketType")
|
||||
* @ORM\Cache(usage="NONSTRICT_READ_WRITE", region="summit_ticket_type_region")
|
||||
* Class SummitTicketType
|
||||
* @package models\summit
|
||||
*/
|
||||
|
||||
@@ -18,6 +18,7 @@ use Doctrine\ORM\Mapping AS ORM;
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="SummitType")
|
||||
* @ORM\Cache(usage="NONSTRICT_READ_WRITE", region="summit_type_region")
|
||||
* Class SummitType
|
||||
* @package models\summit
|
||||
*/
|
||||
|
||||
@@ -230,6 +230,22 @@ return [
|
||||
'lifetime' => 3600,
|
||||
'lock_lifetime' => 60
|
||||
],
|
||||
'summit_type_region' => [
|
||||
'lifetime' => 1800,
|
||||
'lock_lifetime' => 60
|
||||
],
|
||||
'summit_ticket_type_region' => [
|
||||
'lifetime' => 1800,
|
||||
'lock_lifetime' => 60
|
||||
],
|
||||
'summit_event_type_region' => [
|
||||
'lifetime' => 1800,
|
||||
'lock_lifetime' => 60
|
||||
],
|
||||
'summit_presentation_category_region' => [
|
||||
'lifetime' => 1800,
|
||||
'lock_lifetime' => 60
|
||||
],
|
||||
],
|
||||
'log_enabled' => true,
|
||||
'file_lock_region_directory' => '/tmp'
|
||||
|
||||
@@ -722,7 +722,7 @@ final class OAuth2SummitApiTest extends ProtectedApiTest
|
||||
$params = array
|
||||
(
|
||||
'id' => 7,
|
||||
'event_id' => 15987,
|
||||
'event_id' => 17300,
|
||||
'fields' => 'id, avg_feedback_rate, head_count',
|
||||
'relations' => 'metrics'
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user