私はカスタムヘルパーを書いています。 私は設定/自動ロード/ templates.global.phpZend Expressive 2でカスタムヘルパーを書く
return [
'dependencies' => [
'factories' => [
TemplateRendererInterface::class => ZendViewRendererFactory::class,
HelperPluginManager::class => HelperPluginManagerFactory::class,
],
],
'templates' => [
'layout' => 'layout::default',
],
'view_helpers' => [
'invokables' => [
'HelperDatetimeFormat' => HelperDatetimeFormat::class,
],
// zend-servicemanager-style configuration for adding view helpers:
// - 'aliases'
// - 'invokables'
// - 'factories'
// - 'abstract_factories'
// - etc.
],
];
に...
をパラメータを渡す方法を見当がつかないと私は、この他のを持っている:
namespace App\Helper;
use Locale;
use DateTime;
use IntlDateFormatter;
class HelperDatetimeFormat
{
private $opts;
private $lang;
public function __invoke(array $opts)
{
$this->opts = $opts;
return $this->datetimeFormat();
}
public function datetimeFormat()
{
...
私が使用している場合私はエラーを取得するコンストラクタ... __invoke()を使用してクラスを構築するためのパラメータを渡すことをお勧めしますか?
ありがとうございます!
非常に興味深いですが、私はこのアプローチを理解しています。 重要なことは、パラメータがどのように通過できるかという点です。日付とパターンのように...設定ファイルからではなく '$ opts = [ 'datetime' => $ this-> usuario ['userDateInscription']、 'format' => ['es_PA'] – greermurray
これらのパラメータは、私の「アプリケーション」のテンプレートに渡されます。 – greermurray
私は問題を正確には分かりません:( 「ランタイム」(実際にはすべてがランタイム、それはPHPです:)のものは何でも、それ以外のものは実行時に使用されます。私が意味することはビューから渡されます)は '__invoke'を通過します。これはあなたのビューで '$ this-> HelperDatetimeFormat(['datetime' => $ this-> usuario ['userDateInscription']、 'format' => '' es_PA '=>' ccc、 d 'de' LLL 'de' y]]、)) '(これは醜いです、コンストラクタから分かりやすいデフォルトを設定しようとします)。 –