There are a lot of online resources about how to use a Guice Provider to bind to a generic class, such as wiki entries like this and SOF questions like this. However, I am having trouble finding a

seen from United Kingdom
seen from China
seen from United States
seen from Spain
seen from China
seen from China

seen from Spain
seen from China

seen from United States

seen from Serbia
seen from Italy

seen from United Kingdom
seen from China
seen from China
seen from United Kingdom

seen from Serbia
seen from Indonesia

seen from Lithuania
seen from United States
seen from China
There are a lot of online resources about how to use a Guice Provider to bind to a generic class, such as wiki entries like this and SOF questions like this. However, I am having trouble finding a

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
This question is a continuation of Using guice for a framework with injected classes, proper way to initialize?, which I've tried to implement, and also tried other ways to get around the issue, but
I have a concern regarding Guice and whether or not its singletons will obey thread confinement that I may try to set up: public class CacheModule extends AbstractModule { @Override protec...
Apache Polygene⢠is a community based effort exploring Composite Oriented Programming for domain centric application development. This includes evolved concepts from Aspect Oriented Programming, Dependency Injection and Domain Driven Design. Composite Oriented Programming allows developers to work with 'fragments', smaller than classes, and 'compose' fragments into larger 'composites' which acts like the regular objects. Apache Polygene⢠also tackles the enforcement of application composition, i.e. composites are declared in modules, modules are contained in layers and access between layers are controlled/enforced.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch ⢠No registration required ⢠HD streaming
DIãšãµãŒãã¹ãã±ãŒã¿ã®éã
DIãšãµãŒãã¹ãã±ãŒã¿ã¯ããããããªããžã§ã¯ãã®æ§ç¯ãšäŸåã®è§£æ±ºãšããä»äºãåãåºãããã®ãã¿ãŒã³ã§ãããšããã§ããã®2ã€ã®ãã¿ãŒã³ã®éããæç¢ºã«èª¬æã§ããã§ããããïŒ
Pimpleã§ã·ã³ãã«ã«æ£ããDIãçè§£ãã ã®ã³ãŒãã¯ä»¥äžã®ããã«ãªã£ãŠããŸããã
<?php require_once '../vendor/pimple/pimple/lib/Pimple.php'; // ã€ã³ãã© interface MailerInterface { public function send($body); } class SendmailMailer implements MailerInterface { public function send($body) { } } // ãã¡ã€ã³ class NewsletterTransfer { protected $mailer; public function __construct(\MailerInterface $mailer) { $this->mailer = $mailer; } public function send($newsletter) { $this->mailer->send($newsletter); } } $container = new \Pimple(); // ãªããžã§ã¯ãã³ã³ã¹ãã©ã¯ã·ã§ã³ã®ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ $container['infrastructure.mailer'] = function($container) { $mailer = new \SendmailMailer(); return $mailer; }; $container['domain.transfer.newsletter'] = function($container) { $newsletterTransfer = new \NewsletterTransfer($container['infrastructure.mailer']); return $newsletterTransfer; }; // ãªããžã§ã¯ãã®å©çš $newsletterTransfer = $container['domain.transfer.newsletter']; $newsletterTransfer->send('ãã¥ãŒã¹ã¬ã¿ãŒæ¬æ');
DIã®ä»çµã¿ã解説ããããã®ãã®ã³ãŒãã«ã¯ãå®ã¯ãDIãã¿ãŒã³ãšãµãŒãã¹ãã±ãŒã¿ãã¿ãŒã³ãšãæ··åšããŠããŸãããã®ã³ãŒãããããªããžã§ã¯ãããšã®ãŸãšãŸããæèããŠããŒããåãåºããšã次ã®3ã€ã«ãªããŸãïŒå©çšåŽããé ã«äžŠã¹ãŠããŸãïŒã
<?php // ãªããžã§ã¯ãã®å©çš $newsletterTransfer = $container['domain.transfer.newsletter']; $newsletterTransfer->send('ãã¥ãŒã¹ã¬ã¿ãŒæ¬æ');
<?php // ãã¡ã€ã³ class NewsletterTransfer { protected $mailer; public function __construct(\MailerInterface $mailer) { $this->mailer = $mailer; } public function send($newsletter) { $this->mailer->send($newsletter); } }
<?php // ã€ã³ãã© class SendmailMailer implements MailerInterface { public function send($body) { } }
å³ã«ãããšã次ã®ããã«ãªããŸãã
ã©ããDIã§ãã©ãããµãŒãã¹ãã±ãŒã¿ãªã®ã§ããããïŒ ãŸãããã®3ã€ã®ãªããžã§ã¯ãã®ä»²ä»åœ¹ãšããŠæ©èœããã³ã³ããã¯ãDIã³ã³ãããªã®ã§ããããïŒãµãŒãã¹ãã±ãŒã¿ïŒã®å¯Ÿè±¡ã³ã³ããïŒãªã®ã§ããããïŒ
ãªããžã§ã¯ãããèŠãã³ã³ããã®äœçœ®ã¥ã
DIãªã®ããµãŒãã¹ãã±ãŒã¿ãªã®ãããã®2ã€ã®éããæç¢ºã«ããã«ã¯ããªããžã§ã¯ããã³ã³ããã«äœãæ±ããŠããã®ããçè§£ããªããŠã¯ãªããŸããã
å¿ èŠãªãªããžã§ã¯ããã³ã³ããããåãåºãïŒèœåçïŒ
äžã®ã³ãŒãã®å ¥å£éšåã«ãããããªããžã§ã¯ãAããAãããéçºããŠãããšããŸããããAããã®èŠç¹ã ããããã¯ã¢ããããã®ã次ã®å³ã§ãã
ãªããžã§ã¯ãBããªããžã§ã¯ãCã®éçºã¯Aããã®æ åœã§ã¯ãããŸããããªããžã§ã¯ãBãã©ã®ããã«æ§ç¯ãããã®ãã¯ãã³ã³ããã«å®çŸ©ãããŠãããããAããã¯åã«ã³ã³ãããããªããžã§ã¯ãAãåãåºããŠã䜿ãã ãã§ãã
ãªããžã§ã¯ãAããã¯ãã³ã³ãããçŽæ¥åç §ããååãããŒã«ããŠäœ¿ããããªããžã§ã¯ããåãåºããŸãã
ãªããžã§ã¯ãBãã©ã®ããã«äœãããã®ããæ°ã«ããããšãªãã宿ã ããªããžã§ã¯ãBããã 䜿ããšããç®çãéæããããã«ãã³ã³ããããååãããŒã«ããŠãªããžã§ã¯ããåãåºããããããµãŒãã¹ãã±ãŒã¿ã®ãã¿ãŒã³ã§ãã
ãªããžã§ã¯ãAã¯ãã³ã³ããã®å€åŽã§ã€ã³ã¹ã¿ã³ã¹åãããŸããã³ã³ããã®ç®¡çäžã«ãªããã®ãããªãªããžã§ã¯ãã§ã¯ãçŽæ¥ã³ã³ãããªããžã§ã¯ããéå ·ãšããŠåç §ããŠäœ¿ãå¿ èŠãããããã§ããããšãã°Symfony Standard Editionã«æšæºã§çšæãããŠããã³ã³ãããŒã©ã¯ã©ã¹ã¯ã³ã³ããã®ç®¡çäžã«ãªãããããµãŒãã¹ãã±ãŒã¿æ¹åŒã«ãªã£ãŠããŸãã
å¿ èŠãªãªããžã§ã¯ãã®åãå£ã ãçšæããŠåãåãïŒååçïŒ
å¥ã®æ åœè Bããã¯ããªããžã§ã¯ãBãéçºããŠããŸããBããã®èŠç¹ã ããããã¯ã¢ããããã®ã次ã®å³ã§ãã
ãªããžã§ã¯ãBã®å®è£ ã«ã¯ããªããžã§ã¯ãCïŒã®ã€ã³ã¿ãŒãã§ã€ã¹ïŒã䜿ã£ãŠããŸãããã®ãªããžã§ã¯ãCã¯ãããã«DãEã»ã»ã»ã䜿ã£ãŠãããããããŸãããããªããžã§ã¯ãCããå ã¯Bããã®æ åœã§ã¯ãããŸããããã åã«ãªããžã§ã¯ãCã䜿ããèªåã®æ åœã§ãããªããžã§ã¯ãBã®åŠçãå®è£ ãããã ãã§ãã
ãã®ãããžã§ã¯ãã§ã¯ããªããžã§ã¯ãBã¯ãå¿ ãã³ã³ããçµç±ã§å©çšããããšããåãæ±ºãããããšæã£ãŠãã ãããã€ãŸãããªããžã§ã¯ãBã¯ã³ã³ããã®ç®¡çäžã«ããããã§ãããã®ãããªå Žåããªããžã§ã¯ãBã®çææã«ãã³ã³ã¹ãã©ã¯ã¿ã®åŒæ°ã远å ã®ã»ãã¿ãŒåŒã³åºãã«ãã£ãŠãå¿ èŠãªäŸåãªããžã§ã¯ããã³ã³ãããèªåçã«ã»ããããããã«ã§ããŸãããªããžã§ã¯ãBã¯ããåãåãéå ·ã®çš®é¡ããã³ã³ã¹ãã©ã¯ã¿ã®åŒæ°ã§ç€ºããŠã¯ããŸãããèªãåãåºããŠããããã§ã¯ãããŸããã
ãªããžã§ã¯ãCãã©ã®ããã«äœãããã®ããæ°ã«ããããšãªãã宿ãããªããžã§ã¯ãCããã 䜿ããšããç®çãéæããããã«ã䜿ããããªããžã§ã¯ãã®åãåãå£ã ãçšæããŠãã³ã³ããããããžæž¡ããŠãããããšããã®ãDIã®ãã¿ãŒã³ã§ãã
ãŸãšã
åãã³ã³ããã§ããããã䜿ããªããžã§ã¯ããã³ã³ããã®ç®¡çäžã«ãããã©ããã§ã䜿ããææ³ãç°ãªããŸãããããžã§ã¯ãã§å©çšãããã¬ãŒã ã¯ãŒã¯ãšã®å Œãåãã§ãã³ã³ãã管çäžã«ãããªãç¶æ³ãªã©ããããŸãã
éèŠãªã®ã¯ãDIã§ããµãŒãã¹ãã±ãŒã¿ã§ããäŸåã®è§£æ±ºãšãªããžã§ã¯ãã®æ§ç¯ãšããä»äºããªããžã§ã¯ãèªèº«ããã³ã³ãããžç§»ããŠããã®ã¯åãã ãšããããšã§ããããã«ãã£ãŠãAãããBããã¯ããããã®æ åœç¯å²ã®ã¿ã«éäžã§ããŸãããªããžã§ã¯ãã®ã³ãŒãããäœèšãªãã®ãåãé€ãããèªåã®ä»äºã«ãã屿åãããããã«ãªããŸãã
åè
Advent Day 10: DI > SL ? « BEAR Blog
BEAR.Sundayãã¥ãŒããªã¢ã«ã»ã¹ã¯ãªãŒã³ãã£ã¹ã
ããã°ã©ãã³ã°éå Žç kumamidori ã§ãã
5æ31æ¥ã«ãNagoya.php vol.5 ã«åå ããŸããã
vol.5 ã®ããŒãã¯ããPHPãã¬ãŒã ã¯ãŒã¯ã®ïŒã€ã§ããBEAR.Sundayãè§Šã£ãŠã¿ãããã§ããã åå è å šå¡ã§ãBEAR.Sundayã¯ãŒã¯ã·ã§ããWikiïŒãã¥ãŒããªã¢ã«ïŒã®å 容ã«åãçµã¿ãŸããã ç§ãèŠã€ããããç¯å²ã ãšã@kenji_sããã@qckanemoto ãããããã°ã«ãŸãšããããŠããŸãã®ã§ããã¡ããã芧é ããã°ãšæããŸããèšäºã®ææ«ã«ãã®ãªã³ã¯ã貌ããŸãã
BEAR.Sundayãã¥ãŒããªã¢ã«ã»ã¹ã¯ãªãŒã³ãã£ã¹ã
ãã®èšäºã§ã¯ãã¹ã¯ãªãŒã³ãã£ã¹ãã§ãBEAR.Sundayãã¥ãŒããªã¢ã«ã®ãã¢ããåå¿è ãªãã®è§£èª¬ããŸããã€ã€ç޹ä»ããŸããïŒèŠã人ã誰ãããªããããããŸããããã©ã»ã»ã»ãïŒ
ã¹ã¯ãªãŒã³ãã£ã¹ãNo.ïŒïŒãã¬ãŒã ã¯ãŒã¯ã®æŠèŠãšã€ã³ã¹ããŒã«ïŒyoutubeããŒãžãžã®ãªã³ã¯ã§ãïŒ
ã¹ã¯ãªãŒã³ãã£ã¹ãNo.ïŒïŒãªãœãŒã¹ã®äœæã確èªïŒyoutubeããŒãžãžã®ãªã³ã¯ã§ãïŒ
â»ä»ååç»ãæ²èŒããããšã«ã€ããŠããã¬ãŒã ã¯ãŒã¯äœè ã«äºåã«èš±å¯ãé ããŠãããŸãã
PHPã«ã³ãã¡ã¬ã³ã¹é¢è¥¿ã«ã€ããŠ
BEAR.Sundayã®äœè ã§ããé¡å±±ããã¯ã6æ28æ¥(å)ã«éå¬ãããPHPã«ã³ãã¡ã¬ã³ã¹é¢è¥¿2014ã®åºèª¿è¬æŒããããäºå®ã§ããé¢è¥¿æ¹é¢ã§ãèå³ã®ããæ¹ã¯ãæèŠªäŒã®æ¹ã«ãç³ã蟌ã¿ããããšè¯ãããšæããŸãã@hidenorigotoãããé æ¹ããæ¥èšªãåå ãããããã§ãã
åèãªã³ã¯
BEAR.Sundayã«é¢ãããªã³ã¯
BEAR.Sunday
é¡å±±ããã«ããRESTful Meetup vol.3ã«ãããLTè³æïŒ HTTP IS ONE THING
PHPNW 2013(2) - Presentation « BEAR Blog
ã¹ã¯ãªãŒã³ãã£ã¹ãå ã§åŒçšããæžç±
PHPã¡ã³ã¿ãŒãºããã°ã«ãããé¢é£èšäº
PHPã¡ã³ã¿ãŒãº -> WEB+DB PRESS PHPé£èŒç¬¬5åãBEAR.Sundayã§RESTfulãªã·ã¹ãã éçºããå·çããŸãã
éå Žçããã° -> BEAR.Sunday meetup #3 in Osaka åå ã¬ããŒã
Nagoya.php vol.5 ã«é¢ãããªã³ã¯
Nagoya.php ã®Facebook
Nagoya.php vol.5 BEAR.Sunday workshopã«åå ããŸãã â A Day in Serenity (Reloaded) â PHP, FuelPHP, Linux or something
Nagoya.php vol.5 ã§ BEAR.Sunday ã®ã¯ãŒã¯ã·ã§ãããè¡ããŸãã | QUARTET Engineersâ Blog
â»6æ29æ¥è¿œèšïŒ
åå€å±ã®æ¹ããããåçãæ®ã£ãŠããŸããããïŒããšãªãã€ã³ããé ããã®ã§ã貌ã£ãŠãããŸãã
BEAR.Sunday meetup #3 in Osaka åå ã¬ããŒã
ããã°ã©ãã³ã°éå Žçkumamidoriã§ãã
PHPãã¬ãŒã ã¯ãŒã¯ã®ïŒã€ã«ããBEAR.Sundayããããã®ããåç¥ã§ããããã
ãªãœãŒã¹æåã®OSSãã¬ãŒã ã¯ãŒã¯ã§ãé¡å±±ããïŒ@koriymïŒã«ãã£ãŠéçºãããŠããŸãã
å»å¹Žã€ã®ãªã¹ã§è¡ãããã«ã³ãã¡ã¬ã³ã¹ããPHPNW2013ãã§ã¯ãBEAR.Sundayã®ã¢ãŒããã¯ãã£ã玹ä»ããã»ãã·ã§ã³ããããŸããã
ç§ã¯ä»¥åãæ§ããŒãžã§ã³ã«ããããBEAR.Saturdayãã®æ¹ãä»äºã§äœ¿ã£ãŠããŸãããæ°ããBEAR.Sundayã€ããŠã¯ãååŠè ã®ç¶æ ã§ããããæ©äŒãããŸããªãã£ãã®ã§ãããæ°ã«ãªã£ãŠããŸããã2013幎7æã«ã¯ãBEAR.Sunday meetup #2ã®äž»å¬ããããŠé ããããšããããŸããã
ãã®ãããªãããã€ãããã4æ7æ¥ãBEAR.Sunday meetup #3 in Osakaãéå¬ããããšã«ãªããŸããã é¡å±±ããã«ãPHPNW2013ã§ã®ã»ãã·ã§ã³ãã¢ããããŒãããå 容ã§åæŒããŠé ããŸããã
åå è ãåŒã蟌ãçŽ æµãªã»ãã·ã§ã³ãããŠäžãããããããšãããããŸããã
ãŸããäŒå ŽæäŸãåŒãåããŠäžãã£ã1x1æ ªåŒäŒç€Ÿã®æ°åããïŒ@shin1x1ïŒã«ãã瀌ç³ãäžããŸãã
ãã®èšäºã§ã¯ãã»ãã·ã§ã³å å®¹ã®æç²ãšãåäººçææ³ãæžããŸãã
1. ã»ãã·ã§ã³å å®¹ã®æç²
1-1. ãªãæ°ãããã¬ãŒã ã¯ãŒã¯ãäœãã®ã
- Quality ãš Agility ã®æä»£
Webã¢ããªã±ãŒã·ã§ã³ã¯ãé·æçã«æ¹åãç¶ããŠããå¿ èŠã®ãããã®ã§ãããQuality ãš Agility ã®æä»£ãšèšããã Agilityãšã¯ããããã«å€æŽããããšãå¯èœã§ããããšããããšã
PHP5.3以éã®PHPãã¬ãŒã ã¯ãŒã¯ã«ã¯ãåã«ãåããã®ãéãäœããã®ãšã¯ãå°ãéã£ãæµãããã£ãã å€ãã®PHPãã¬ãŒã ã¯ãŒã¯ãæã£ãŠDIãæ¡çšããããšã¯ããã®äžäŸãšèšããã
- ãã¬ãŒã ã¯ãŒã¯ãã¢ãŒããã¯ãã£
倧äºãªã®ã¯ãããªãã¯äœããããã®ãïŒãšããããšã ãèªåãã¡ã®ãã¡ã€ã³ã®åé¡ãã解決ããããã®ãã¬ãŒã ã¯ãŒã¯ãæã€ããšã«æå³ãããã
PHPNW2013ã®æ¥å Žè ãèå³ãæã£ãŠããã®ã¯ããæ¬¡ã®ã¢ãŒããã¯ãã£ã¯äœãïŒããšããããšã ã£ãã ããšãã°ãSymfony1 ãã 2 ãžãZend1 ãã 2 ãžãæåãããã¬ãŒã ã¯ãŒã¯ã¯ã©ããããŠãŒã¶ããããŒãžã§ã³ã¢ããã®ããã®ãå€§å¹ ãªæžãçŽãããçµéšããŠããã Symfony2 ãã 3 ã§ããŸãããããããªããã°ãªããªãã®ãïŒïŒãšããåé¡ãããããããã£ãåé¡ããã©ã®ãããªæè¡ã§è§£æ±ºã§ããã®ããšããèŠç¹ãã¢ãŒããã¯ãã£ã®éžå®ããšããæå³ã§ãæ°ãããã®ãæ¢ãããšããåæ©ãããBEARã®ã»ãã·ã§ã³ãèãã«æ¥ãŠãããã
1-2. PHPNW2013ãA resource orientated framework using the DI /AOP/REST TriangleãåæŒ
ïŒâ»NW2013åœæã®ãäœè ãæ¬äººã®ãã¬ãŒã³ããŒã·ã§ã³å 容玹ä»ãšã³ããªãŒãèŠãŠé ãæ¹ããšãã»ã³ã¹ãäŒãããšæãã®ã§ããã¡ãããåç §é ããã°ãšæããŸãã ç§ã®èšäºã§ã¯ãèæ¯ãåæãšãªãç¥èã®éšåã«è©±é¡ãçµã£ãŠã¡ã¢ããŸãïŒã
BEARã¯ã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã ããã©ããã©ã€ãã©ãªãæããªããè¯ãã©ã€ãã©ãªã¯æ¢åã§ãããããããããåçºæã®å¿ èŠãç¡ãã
ããããããã¬ãŒã ã¯ãŒã¯ãšã¯äœãïŒ
åºçŸ©ã®æå³ïŒ
imposes a set of design constraints on end-user code.
ãšã³ããŠãŒã¶ã®ã³ãŒãã«å¯ŸããŠãèšèšäžã®å šäœçãªå¶çŽãäžããã (by Nate Abele)
ççŸ©ã®æå³ïŒ
ãåŒã¶ãåŽ-ãåŒã°ãããåŽã®é¢ä¿ãé転ããŠããåŒã¶ãåŽããã¬ãŒã ã¯ãŒã¯ãæåãããè³ç«ãŠãããåŒã°ãããåŽã ãããŠãŒã¶ãæžãã
BEARã®å Žåã¯ïŒïŒåŒã¶åŽããŠãŒã¶ãæžãã
BEAR.Sundayã¯ã3ã€ã®ãªããžã§ã¯ããã¬ãŒã ã¯ãŒã¯ãæã€ã
(1) DI Framework
åæç¥èãšãªã Dependency Inversion Principle ïŒäŸåé¢ä¿é転ã®ååãDIPïŒã«ã€ããŠã®è©±ããã£ãã®ã§ãããææ«ã®åèãªã³ã¯ã«è©³ãã解説ãããã®ã§ãããã§ã¯çããŸãã
(2) AOP
ããšãã°ããããã¢ãžã¥ãŒã«ã«æ£åšããŠããŸããã®ã³ã°ã®ãããªã 暪æçé¢å¿äºïŒCross-Cutting ConcernsïŒãåé¢ããããšã§ã ã¢ãžã¥ãŒã«éãççµåãšããããã°ã©ãã³ã°ãã©ãã€ã ã®ããšã
ã¢ããªã±ãŒã·ã§ã³ããžãã¯ïŒãã°ããã£ãã·ã¥ãetcâŠïŒãšãã¡ã€ã³ããžãã¯ïŒã³ã¢ã®é¢å¿äºïŒãåé¢ããã
(3) RESTïŒHypermedia FrameworkïŒ
ãªããžã§ã¯ããWebãµãŒãã¹ã®ããã«æ±ãã
RESTãšã¯ïŒã¯ã©ã€ã¢ã³ããšãµãŒãã«Webã¯åãããŠãããæ±ºãŸã£ãã¡ãœãããã䜿ããªãããªã¯ãšã¹ãã¯1åã ãã§ãã¹ããŒãã¬ã¹ã§ããã
ãã®ã¢ãŒããã¯ãã£ããOOPã¢ããªã±ãŒã·ã§ã³ã®å éšã«é©çšããŠããããªãœãŒã¹ãšãªãœãŒã¹ããã€ããŒãªã³ã¯ã«ãã£ãŠã€ãªãããšãã§ããã
æ å ±ã«çã®æå³ã§ã®äŸ¡å€ãäžããã®ã¯ãã®ã€ãªããã§ããã
å®è£ ãçŽæ¥æžãã®ã§ã¯ãªãããŸããæœè±¡åãããæå³ãèšè¿°ãããæ¬¡ã«ããã®æå³ã«åœ¹å²ãäžããŠåããïŒå®è£ ãçµåããïŒã
A resource oriented framework using the DI/AOP/REST triangle from Akihito Koriyama
ã»ãã·ã§ã³å 容ã«ã€ããŠã¯ä»¥äžãšãªããŸãã
2. åäººçææ³
äžèšãåãããªãã£ãã®ã§ãä»åŸèª¿ã¹ãŠãããããšæããŸããã
ä»ã®èšèªãããšãã°Rubyã§ã¯ã倿Žã®å®å šæ§ïŒãã1ç®æãçŽãããããã¡ãã¡ã«åœ±é¿ãåºãããäºæ³ãããªããšããã«äœçšãåºããããšãã£ãããšãé²ãïŒããã©ãæ ä¿ããããšããŠããã®ãïŒ
è€éãªããžãã¯ã§ããDIã®ã©ã³ã¿ã€ã ãšã³ã³ãã€ã«ã®åé¢ã§è¡šçŸã§ããã®ãïŒ
ã»ãã·ã§ã³ã®äžã§åºãŠããããstaticã³ãŒã«ã ãšAOPã¯ããŸããããªããã€ã³ã¿ãŒãã§ã€ã¹ã§ãªããšããŸããããªããããšãã話ã®ãã ãã®ãšãããçè§£ã§ããªãã£ããèªåçæã®ä»çµã¿ã調ã¹ãŠããããã
ãã¯ããçç·Žè ã§ãªããšãå®éã«äœ¿ã£ãŠã¿ãªããšããããããªãã®ã§ãå°ããªã¢ããäœã£ãŠã¿ããšããããå§ããŠã¿ãããšæããŸãã
ïŒä»åäžç·ã«äž»å¬ãããŠããã @atakig ãããçŽç«äžåã®åçãèŒããŠãããŸãïŒã
é¢é£ãªã³ã¯
BEAR.Sundayå ¬åŒããã¥ã¡ã³ã
kawanamiyuuãããäœãããVagrantãã¢
æ±äº¬ã§2014幎4æ12æ¥ã«è¡ãããå¥ã®ã€ãã³ããRESTful Meetup vol.3ãã«ãããBEAR.Sunday玹ä»LTïŒé¡å±±ããã«ããïŒïŒHTTP IS ONE THINGïŒïŒãã®ã¹ã©ã€ããäžã«ãé²ããã®ã§ããïŒïŒ
ãŠã§ãã¹ã¿ãŒæ ªåŒäŒç€Ÿã«ããBEAR.Sundayã§éçºãããŠããPen online
éå»ã«éå¬ãããã€ãã³ã
BEAR.Sunday meetup #0
BEAR.Sunday meetup #1
BEAR.Sunday meetup #2
åè
BEAR.Sundayã®ç޹ä»èšäºã§ãã
WEB+DB PRESS PHPé£èŒç¬¬5åãBEAR.Sundayã§RESTfulãªã·ã¹ãã éçºããå·çããŸãã
Dependency Inversion Principle ïŒäŸåé¢ä¿é転ã®ååïŒãDIã«é¢ãããªã³ã¯ã§ãã
Robert C. Martin - Dependency Inversion Principle(PDF)
å±±å£å€§èŒæ°ã«ããæ¥æ¬èªèš³
Pieceã®äžã®Symfony #3: Dependency Injectionã³ã³ããŒãã³ã