コメントをありがとうprodigitalson、引数を渡すことで提案したように問題を解決しました。
今、私の CustomerAdmin.php は、Admin をオーバーライドする AbstractAdmin クラスを拡張します。この AbstractAdmin には共通コードが含まれており、他のすべての Admin クラスはこの Abstract クラスを拡張します。
<?php
namespace xxxx\AdminBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Doctrine\ORM\EntityManager;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Route\RouteCollection;
abstract class AbstractAdmin extends Admin
{
/** @var int */
protected $maxPerPage = 10;
//other attributes
public function __construct($code, $class, $baseControllerName)
{
parent::__construct($code, $class, $baseControllerName);
$this->fields = $this->sortFields($fields);
// custome arguments
if (!$this->hasRequest()) {
$this->datagridValues = array(
***'_per_page' => $this->maxPerPage*** //passing ***_per_page*** argument
);
}
}
<?php
namespace xxxx\AdminBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Route\RouteCollection;
class CustomerAdmin extends AbstractAdmin
{
//code here
}