äœãšäžç·ã«é£ã¹ãã®ïŒ
Drupalã§äœæããããã¹ãŠã®ã¢ãžã¥ãŒã«ã¯ãæ¡ä»¶ä»ãã§2ã€ã®ã«ããŽãªã«åé¡ã§ããŸãã æåã®ã¢ãžã¥ãŒã«ã¯ãå®éã«æ°ããããŒã¿åã宣èšããããã§ã«å®çŸ©ããä¿åãããŠããããŒã¿ãåŠçããã¢ãžã¥ãŒã«ã§ãã ããšãã°ãlightbox2ã¢ãžã¥ãŒã«ã䜿çšãããšããµã€ãäžã®ç»åã®è¡šç€ºã倿Žã§ããŸããdevelã¢ãžã¥ãŒã«ã¯ãéçºè ã«åœ¹ç«ã€ããŸããŸãªãŠãŒãã£ãªãã£ãæäŸããŸãã ãŸããdevelã¢ãžã¥ãŒã«ã¯ããŒã¿ããŒã¹ã«ããã€ãã®æ å ±ïŒããšãã°ãSQLã¯ãšãªã®å®è¡æïŒãæ ŒçŽããŸãããå®éã«ã¯ããããæ¬æ ŒçãªããŒã¿ã¢ãã«ãšåŒã¶ããšã¯ã§ããŸããã
2çªç®ã®ã«ããŽãªã¯ãæ°ããã¿ã€ãã®ãªããžã§ã¯ãã®äœæãæ°ããããŒã¿ã¢ãã«ã®å®çŸ©ãå¯èœã«ããã¢ãžã¥ãŒã«ã§ãã ãã®ãããªã¢ãžã¥ãŒã«ã«ã¯ãããšãã°ãwebformã¢ãžã¥ãŒã«ïŒèª¿æ»ãã©ãŒã ã®äœæãèš±å¯ïŒãããã³ã«ãŒãã«ã«å«ãŸãããŠãŒã¶ãŒã¢ãžã¥ãŒã«ïŒæ°ãããŠãŒã¶ãŒã®äœæïŒç»é²ïŒãããŸããŸãªæäœã®å®è¡ïŒãå«ãŸããŸãã
ã¢ãžã¥ãŒã«ã®éçºè ãæ°ããããŒã¿åã宣èšããå¿ èŠãããå Žåã2ã€ã®ãªãã·ã§ã³ããããŸãã æåã®ãªãã·ã§ã³ã¯ãããŒã¿ã¿ã€ããæ°ããææã¿ã€ãïŒããŒãã¿ã€ãïŒãšããŠå®çŸ©ããããšã§ãã 2çªç®ã®ãªãã·ã§ã³ã¯ããã¹ãŠããŒãããäœæããããšã§ãã ã©ã¡ãã®ã¢ãããŒãã«ãé·æãšçæããããŸãã 2çªç®ã®ãªãã·ã§ã³ãããæè»ã§ãããå®è£ ã«å®éã«å¶éã課ããªãããšã¯æããã§ãã æåã®ãªãã·ã§ã³ã¯ãNode APIãæäŸããæ¢è£œã®ããŒã«ã«ããããã䟿å©ã§å®è¡ãé«éã§ãã
ãã ããéçºã®ã¹ããŒããšå®¹æãã ãã§ãªããDrupal 6ã§äœæãããæ°ããããŒã¿ã¢ãã«ãå®è£ ããæãæ·±å»ãªã¢ãžã¥ãŒã«ã¯ããããããŒãã¿ã€ããšããŠå®£èšããŸãã éèŠãªç¹åŸŽã¯ãã¿ã€ãã«é¢ä¿ãªãããã¹ãŠã®ææãç¹å®ã®äžè¬çãªæ§é ãšå€éšçžäºäœçšã®äžè¬çãªã¹ããŒã ãæã£ãŠããããšã§ãã ãã®ã¢ãããŒãã«ããã1ã€ã®ã¢ãžã¥ãŒã«ãèšè¿°ããŠãã·ã¹ãã ã«ååšãããã¹ãŠã®ã¿ã€ãã®ãããªã¢ã«ã®æ©èœãæ¡åŒµã§ããŸãã å®éãç¹å®ã®çš®é¡ã®ãããªã¢ã«ã®ååšãèªèããŠããªãå ŽåããããŸãããåæã«ãããã«åœ±é¿ãäžããæäœã§ããã¢ãžã¥ãŒã«ãäœæããŸãã é®®æãªäŸã¯ãCCKããã³ãã¥ãŒã¢ãžã¥ãŒã«ã§ãã
ãã¹ãŠã¯åé¡ãªãããã«èŠããŸããã1ã€ã®åé¡ãæ®ã£ãŠããŸãã åè¿°ããããã«ãããŒãã¿ã€ããä»ããå®è£ ã«ã¯ããã€ãã®å¶éããããå Žåã«ãã£ãŠã¯ãã®ã¢ãããŒããäžäŸ¿ãŸãã¯äžå¯èœã«ãªããŸãã ç¹ã«ãDrupal 6ã®ãŠãŒã¶ãŒãŸãã¯ã³ã¡ã³ããã³ã³ãã³ãã¿ã€ããšããŠå®è£ ãããŠãããšæ³åããã®ã¯å°é£ã§ãã ãã¡ããããŠãŒã¶ãŒãçŽ æã®åœ¢ã§å®è£ ããããšã®å¯èœæ§ãŸãã¯äžå¯èœæ§ã«ã€ããŠã¯ãããã§arbitrarilyæçã«é·ãè°è«ããããŸããããã®ã¢ãããŒãã¯ãããã®å Žåããšã¬ã¬ã³ãã§æ£ãããšã¯èšããŸããã
Drupal 7ã®ç»å Žã§äœãå€ãã£ãã®ã§ããïŒ å®éãæ°ããã¬ãã«ã®æœè±¡åãäœæãããŸããã ãããŠåœŒã®ååã¯ãšã³ãã£ãã£ã§ãã å®éããšã³ãã£ãã£ã¯ãDrupal 6ã®ããŒããããæœè±¡åºŠãäœãã¬ãã«ã§ããããã«ãDrupal 7ã§ã¯ããŒããæ¶ããªãããšãäºçŽããŸãããçŸåšã¯ãããããšã³ãã£ãã£ã®ã¢ããªã³ã«ãªã£ãŠããŸãã æè¯ã®éšåã¯ãDrupal 7ã®ãŠãŒã¶ãŒãã³ã¡ã³ããªã©ããšã³ãã£ãã£ã§ãããšããããšã§ãã ããªãã¯ãã§ã«ãç®±ããåºããŠãã®éããæããããšãã§ããŸãã ããšãã°ã以åã¯ãCCKã¢ãžã¥ãŒã«ã䜿çšããŠãææã¿ã€ãã«ã®ã¿æ°ãããã£ãŒã«ãã远å ã§ããŸããã Drupal 7ã§ã¯ããŠãŒã¶ãŒãã³ã¡ã³ããããã«ã¯åé¡ã¿ã°ã§ãåãããšãã§ããŸãã ããã¯ãã¿ã°ããããªã¢ã«ãã³ã¡ã³ããããã³ãŠãŒã¶ãŒããã¹ãŠãšã³ãã£ãã£ã®ãµãã¯ã©ã¹ã§ããããã§ãã
æ€æ»ã衚瀺ãããŸã
ãšã³ãã£ãã£ã·ã¹ãã ã®å éšæ§é ã«é¢ããè°è«ãå§ããåã«ã api.drupal.orgã®ãããªãã°ããããªãœãŒã¹ãæãåºããŠãã ãããã·ã§ã€ã¯ã¹ãã¢èšèªã§åŸè¿°ãããã¹ãŠã®ã€ã³ã¿ãŒãã§ã€ã¹ãã¯ã©ã¹ãã¡ãœããã«ãã€ã§ãæ £ããããšãã§ããŸãã
ããã§ã¯ããã¹ãŠãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã Drupal 7ã§ã¯ïŒåŸã§èŠãããããã«ïŒãªããžã§ã¯ãæåããã°ã©ãã³ã°ãããç©æ¥µçã«äœ¿çšãããããã«ãªããŸããããã¢ãžã¥ãŒã«ã«æ°ãããšã³ãã£ãã£ãå®è£ ãããŠããããšãã·ã¹ãã ã«éç¥ããã«ã¯ãããã¯ãå®è£ ããå¿ èŠããããŸãã èå³ã®ããããã¯ã¯hook_entity_infoïŒïŒã§ãã ããããã飿³é åãè¿ããªããã°ãªããŸããã飿³é åã®ããŒã¯ãå®è£ ãããšã³ãã£ãã£ã®ååã«ãªããŸãã åæ§ã«ãåãšã³ãã£ãã£ã¯ãã®ãã©ã¡ãŒã¿ã®é åã«å¯Ÿå¿ããŸãã 以äžã«æå®ã§ãããã©ã¡ãŒã¿ãŒã®ãªã¹ãã瀺ããŸãã
- ã©ãã«ïŒãšã³ãã£ãã£ã®ããããã人éãèªãããã¿ã€ãåã ã©ãã«ã翻蚳å¯èœã«ããå Žåã¯ãtïŒïŒã§ã©ããããå¿ èŠããããŸãã
- ã³ã³ãããŒã©ãŒã¯ã©ã¹ïŒããŒã¿ã®èªã¿èŸŒã¿ãæ åœããcounterOllerã¯ã©ã¹ã®ååã ã¯ã©ã¹ã¯DrupalEntityControllerInterfaceã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããå¿ èŠããããŸãã ãã®ãã©ã¡ãŒã¿ãŒãæå®ããªãå Žåãããã©ã«ãã®ã³ã³ãããŒã©ãŒã§ããDrupalDefaultEntityControllerãã³ã³ãããŒã©ãŒãšããŠäœ¿çšãããŸãïŒãšã³ãã£ãã£ã³ã³ãããŒã©ãŒã«ã€ããŠã¯ããã®èšäºã§åŸè¿°ããŸãïŒã
- ããŒã¹ããŒãã«ïŒãšã³ãã£ãã£ã®ããŒã¿ããŒã¹å ã®ããŒã¹ããŒãã«ã æ£åŒã«ã¯ããã©ã¡ãŒã¿ãŒã¯ãªãã·ã§ã³ã§ãã DrupalDefaultEntityControllerã¯ã©ã¹ã«ãã£ãŠäœ¿çšãããç¶æ¿ãããŸãã ã€ãŸã DrupalEntityControllerInterfaceã€ã³ã¿ãŒãã§ãŒã¹ãç¬èªã®æ¹æ³ã§å®è£ ããããŒã¿ããŒã¹ããŒãã«ããã§ã¯ãªããå°ãªããšãç«æè¡æããããŒã¿ãåä¿¡ã§ããŸãããDrupalDefaultEntityControllerãŸãã¯ãã®æŽŸçç©ãã³ã³ãããŒã©ãŒãšããŠäœ¿çšããå Žåã¯ããã®ãã©ã¡ãŒã¿ãŒãæå®ããŠãã ããã å°æ¥ãèŠæ®ããŠãã»ãšãã©ã®å Žåãã³ã³ãããŒã©ãŒã¯DrupalDefaultEntityControllerãŸãã¯EntityAPIControllerãªã©ã®ããé«ãã¬ãã«ã®ã¯ã©ã¹ïŒåŸè¿°ïŒããç¶æ¿ããã®ãçã«ããªã£ãŠãããšèšããŸãã
- æ¹èšããŒãã«ïŒåã®ãã®ãšäŒŒãŠããŸããããã®å Žåã¯æ¹èšããŒãã«ã§ãã ããã§ããŒããšã®é¡æšãæ£ãã远跡ãããŸãã ãšã³ãã£ãã£ãããŸããŸãªãªããžã§ã³ãæ³å®ããŠããªãå Žåããã©ã¡ãŒã¿ãŒã¯çç¥ã§ããŸãã
- éçãã£ãã·ã¥ïŒDrupalDefaultEntityControllerã«ãã£ãŠäœ¿çšãããå¥ã®ãã©ã¡ãŒã¿ãŒã ããŒãžèŠæ±äžã®éçãšã³ãã£ãã£ãã£ãã·ã¥ãæå¹ã«ããŸãã ã€ãŸã ãã®å Žåããªã¯ãšã¹ãéã®ãã£ãã·ã¥ã§ã¯ãªãïŒããŒã¿ãäžå®æéãã£ãã·ã¥ãããæ°ãããªã¯ãšã¹ãããšã«ãã£ãã·ã¥ãæéåãã«ãªããŸã§ãã£ãã·ã¥ããè¿ãããå ŽåïŒã1ã€ã®ãªã¯ãšã¹ãã®ãã£ãã·ã¥ã«ã€ããŠã§ãã ãããã£ãŠãã¯ãšãªãã¹ã®æ¬è³ªã倿ŽããŠãããªããŒãããäºå®ããªãå Žåã¯ãTRUEã«èšå®ããã®ãçã«ããªã£ãŠããŸãïŒããã©ã«ãã§ã¯TRUEã§ãããããåã«ãã©ã¡ãŒã¿ãŒãçç¥ããŸãïŒã
- ãã£ãŒã«ããã£ãã·ã¥ïŒããã§ã¯ããã£ãŒã«ãïŒãã£ãŒã«ãAPIïŒã«é¢é£ããæ°žç¶ãã£ãã·ã¥ã«ã€ããŠèª¬æããŠããŸããããã¯ãåŸã§ç€ºãããã«ããšã³ãã£ãã£ã«ã¢ã¿ããã§ããŸãã å ¬åŒããã¥ã¡ã³ãã§ã¯ããã®ãã©ã¡ãŒã¿ãŒãFALSEã«èšå®ããããšãæå³ãããã®ã¯ããšã³ãã£ãã£å šäœã宿°ãã£ãã·ã¥ã®å¯Ÿè±¡ã§ããå Žåã®ã¿ã§ãã ã€ãŸããå¿ èŠãªçç±ãæ£ç¢ºã«ããããªãå Žåã¯ããã®ãã©ã¡ãŒã¿ãŒãçç¥ããããã©ã«ãã§TRUEã«èšå®ãããŠããããšãå¿ããªãã§ãã ããã
- ããŒãããã¯ïŒDrupalDefaultEntityControllerã§äœ¿çšãããå¥ã®ãã©ã¡ãŒã¿ãŒã DrupalDefaultEntityControllerïŒattachLoad颿°ã«ãã£ãŠåŒã³åºãããä»ã®ã¢ãžã¥ãŒã«ããã®æ å ±ããšã³ãã£ãã£ã«æ·»ä»ã§ããããã«ããŸãã ãããã®å Žåã§ããattach_load颿°ã¯ãã¹ãŠã®ãšã³ãã£ãã£ã«å¯ŸããŠhook_entity_loadãåŒã³åºããŸãããæå®ãããããŒãããã¯ã䜿çšãããšããšã³ãã£ãã£ã«å¯ŸããŠå¥ã®ããã¯ïŒããŒãã¢ãžã¥ãŒã«ã®hook_node_loadãªã©ïŒãåŒã³åºãããšãã§ããŸãã
- uriã³ãŒã«ããã¯ïŒãšã³ãã£ãã£èªäœãåŒæ°ãšããŠäœ¿çšãããŸãã ãšã³ãã£ãã£ã®ã¢ãã¬ã¹ïŒãã¹ããªãã·ã§ã³ãªã©ïŒã®URIãè¿ããŸãããã®ã³ã³ããŒãã³ããããåŸã§uriïŒïŒé¢æ°ã䜿çšããŠãšã³ãã£ãã£ã®ã¢ãã¬ã¹ãååŸã§ããŸãã ãã®é¢æ°ã®å®çŸ©ã«ã¯ããŸããŸãªã¢ãããŒãããããŸãã ç¹ã«Entity APIã¢ãžã¥ãŒã«ã«ã¯ãæž¡ããããšã³ãã£ãã£ã®$ entity-> uriïŒïŒé¢æ°ãåã«åŒã³åºãentity_class_uri颿°ãããããšã³ãã£ãã£ã«ã¢ãã¬ã¹ã決å®ããæ©èœãäžããŸãã
- ã©ãã«ã³ãŒã«ããã¯ïŒãšã³ãã£ãã£ã®ååãååŸããããã«äœ¿çšããããªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãŒã åŒæ°ãšããŠãæ¬è³ªãšãšã³ãã£ãã£ã®ã¿ã€ããåããŸãã ãšã³ãã£ãã£ã®ååããã®ãšã³ãã£ãã£ã®äžéšã®ãã©ã¡ãŒã¿ãŒãšåçã§ããå ŽåïŒããŒãã®ååãã¿ã€ãã«ãã£ãŒã«ããšåçãªã©ïŒããã©ãã«ã-èŠçŽ ããšã³ãã£ãã£ããŒãïŒåŸè¿°ïŒã䜿çšããããšããå§ãããŸãã ååãäœããã®æ¹æ³ã§ç¹å¥ãªæ¹æ³ã§åœ¢æãããŠããå ŽåïŒããšãã°ãããã€ãã®ãã£ãŒã«ãã®çµã¿åãããšããŠïŒããã©ãã«ã³ãŒã«ããã¯ãã䜿çšããŠèšå®ã§ããŸãã
- ãã£ãŒã«ãåå¯èœïŒsayingã«ããããã«ãããããéæ³ã§ããã TRUEã«èšå®ããã³ã³ãããŒã©ãŒããã®æ©èœãå®è£ ããïŒãŸãã¯DrupalDefaultEntityControllerããç¶æ¿ãããïŒãšæ³å®ããããšã«ãããDrupalãã£ãŒã«ãAPIã䜿çšããŠãšã³ãã£ãã£ãæ¡åŒµå¯èœã«ããŸãïŒDrupal 7ã®Drupal 6ã®CCKã¢ããã°ã¯ã«ãŒãã«ã«çµ±åãããŸãïŒã ã€ãŸã ãŠãŒã¶ãŒãããŒãã®ã¿ã€ããã¿ã°ãªã©ãããŸããŸãªãã£ãŒã«ãããšã³ãã£ãã£ã«æ·»ä»ã§ããŸãã
- 翻蚳ïŒè©³çްã«é²ãããšãªã-ãã®ãã£ãŒã«ãã䜿çšãããšããšã³ãã£ãã£ãšããã«é¢é£ä»ãããããã£ãŒã«ãã翻蚳å¯èœã«ããããšãã§ããŸãã 空ã§ãªãå Žåã飿³é åã¯å€ãšããŠç€ºãããŸããããŒã¯ç¿»è𳿩èœãæäŸããã¢ãžã¥ãŒã«ã®ååã§ãããå€ã¯ç¿»èš³ã«å¿ èŠãªããããçš®é¡ã®æ å ±æ§é ã§ãã
- ãšã³ãã£ãã£ããŒïŒãã£ãŒã«ãAPIã§äœ¿çšããããã©ã¡ãŒã¿ãŒã 次ã®èŠçŽ ãå«ãå¯èœæ§ã®ãã飿³é åïŒ
- -idïŒãšã³ãã£ãã£ã®äžæã®ãã©ã€ããªèå¥åãå«ããšã³ãã£ãã£ãã£ãŒã«ãã fieldableãTRUEã«èšå®ãããŠããå Žåã¯å¿ é ã§ãã å€ã¯æ£ã®æŽæ°ã§ãªããã°ãªããŸããã
- -ãªããžã§ã³ïŒãªããžã§ã³IDãå«ããã©ã¡ãŒã¿ãŒã®ååã ãã£ãŒã«ãAPIã¯ãã¿ã€ãå ã®ãã¹ãŠã®ãšã³ãã£ãã£ã«äžæã®ãªããžã§ã³IDããããšæ³å®ããŠããŸãã ãšã³ãã£ãã£ãããŒãžã§ã³ïŒæ¹èšïŒã¢ãã«ãå®è£ ããŠããªãå Žåããã©ã¡ãŒã¿ãŒã¯çç¥ã§ããŸãã
- -bundleïŒãšã³ãã£ãã£ãå±ãããã³ãã«ïŒãµãã¿ã€ãïŒã瀺ããã©ã¡ãŒã¿ãŒã åãã³ãã«ã«ã¯ãç¬èªã®ãã£ãŒã«ãã»ããããããŸãã ããã§ãè¯ãäŸã¯ããŒãã®ã¿ã€ãã§ããåã¿ã€ãã«å¯ŸããŠç¬èªã®ãã£ãŒã«ããæå®ã§ããŸãïŒæçµçã«ã¯ããã¹ãŠã®ã¿ã€ãã1ã€ã®ãšã³ãã£ãã£ã§ãããšããäºå®ã«ããããããïŒã ãšã³ãã£ãã£ã¿ã€ãã«ãã®ãããªæ©èœãå®è£ ããäºå®ããªãå ŽåïŒç°ãªããã³ãã«ãç°ãªããã£ãŒã«ãã»ããã䜿çšããäºå®ããªãå ŽåïŒããã®ãã©ã¡ãŒã¿ãŒãçç¥ã§ããŸãã æ¬¡ã«ããšã³ãã£ãã£ã¿ã€ãã®ååãèªåçã«ãã©ã¡ãŒã¿ãšããŠäœ¿çšãããŸãã
- -ã©ãã«ïŒãšã³ãã£ãã£ã®ååã瀺ããã©ã¡ãŒã¿ãŒã ã¿ã€ãã«ãåçã«åœ¢æããå¿ èŠãããå Žåã¯ãåè¿°ã®ã©ãã«ã³ãŒã«ããã¯ãã©ã¡ãŒã¿ãŒã䜿çšããŸãã
- ãã³ãã«ïŒå®éã«ãšã³ãã£ãã£ã®ã¿ã€ãã®ãã³ãã«ïŒãµãã¿ã€ãïŒã®ã»ãããå®çŸ©ããŸãã ããŒã®é£æ³é åã¯ããã³ãã«ã®ãã·ã³åã§ãïŒããšã³ãã£ãã£ããŒããã©ã¡ãŒã¿ãŒã§å®çŸ©ãããããã³ãã«ããã£ãŒã«ãã«æ ŒçŽããã圢åŒïŒã ãã³ãã«ã®ååã¯ã次ã®ããŒã䜿çšããŠé£æ³é åã«é¢é£ä»ããããŸãã
- -labelïŒã人éãèªãããã¯ãã³ãã«ã®ååã§ãã ãã€ãã®ããã«ãååã翻蚳å¯èœã«ãããå Žåã¯tïŒïŒã§ã©ããããŸãã
- -uriã³ãŒã«ããã¯ïŒãšã³ãã£ãã£ã¿ã€ãã®ãuriã³ãŒã«ããã¯ããšåãããã³ãã«ã®ã¿ã ãããã®äž¡æ¹ãæå®ãããŠããå Žåãã³ãŒã«ããã¯ããã³ãã«ã«äœ¿çšãããŸãã
- -adminïŒField APIããšã³ãã£ãã£ç®¡çããŒãžã«ãã®ããŒãžãåã蟌ãããšãå¯èœã«ããæ å ±ãå«ãé åã
- -pathïŒãã³ãã«ç®¡çããŒãžãžã®ãã¹ã ãã¹ã«ãã¬ãŒã¹ãã«ããŒãå«ãŸããå Žåã¯ãããã³ãã«åŒæ°ããšãå®éã®ãã¹ãã®å€ãæå®ããå¿ èŠããããŸãïŒä»¥äžã§èª¬æããŸãïŒã
- --ãã³ãã«åŒæ°ïŒãã¹å ã®ã¹ã¿ãã®äœçœ®ã ååã¯ãã¡ãã¥ãŒãã¹ã䜿çšããå Žåãšåãã§ãã
- --å®ãã¹ïŒã¹ã¿ããªãã®ãã³ãã«ç®¡çããŒãžãžã®ãã¹ã ãªã³ã¯ã®çæã«äœ¿çšãããŸãã
- --ã¢ã¯ã»ã¹ã³ãŒã«ããã¯ïŒhook_menuïŒïŒãšåãã 空çœã®ãŸãŸã«ãããšãuser_accessïŒïŒã䜿çšãããŸãã
- --ã¢ã¯ã»ã¹åŒæ°ïŒhook_menuïŒïŒãšåãã§ãã
- 衚瀺ã¢ãŒãïŒãšã³ãã£ãã£ã衚瀺ããããŸããŸãªæ¹æ³ïŒã¿ã€ãïŒã è¯ãäŸã¯ãããŒããå®å šã§ãã£ãŒã¶ãŒã§ãã ãã·ã³ãã¥ãŒåãããŒãšããŠäœ¿çšããã飿³é åã ããã©ã«ãã§ã¯ãåãšã³ãã£ãã£ã«ã¯ããã©ã«ãã®ãã¥ãŒããããŸãã TRUEããã¥ãŒãã©ã¡ãŒã¿ã®ãã«ã¹ã¿ã èšå®ãã«èšå®ãããŠããå Žåãä»ã®ãã¹ãŠã®ãã¥ãŒã¯ããã©ã«ãå€ãç¶æ¿ã§ããŸãã åãã¥ãŒã¯ã次ã®ããŒãæã€é åã§ãã
- -ã©ãã«ïŒã人éãèªããããã¥ãŒåã ãã€ãã®ããã«ãååã翻蚳å¯èœã«ãããå Žåã¯tïŒïŒã§ã©ããããŸãã
- -ã«ã¹ã¿ã èšå®ïŒå³å¯ã«èšãã°ããã®ãªãã·ã§ã³ã¯äž»ã«ãã£ãŒã«ãã«é©çšãããŸãã FALSEïŒããã©ã«ãå€ïŒã«èšå®ãããšãæåã¯ãã¥ãŒã¯ããã©ã«ããã¥ãŒãããã£ãŒã«ãã衚瀺ããããã®èšå®ãç¶æ¿ããŸãã æ¬¡ã«ããã£ãŒã«ãUIã䜿çšããŠèšå®ã倿Žã§ããŸãã
ããã¯å®éã«ã¯ããšã³ãã£ãã£ã¿ã€ãã«æå®ã§ãããã¹ãŠã®ãã©ã¡ãŒã¿ãŒã§ãã EntityAPIControllerãªã©ã®DrupalDefaultEntityControllerã®ã¢ããªã³ã«ã¯ã远å ã®ãã©ã¡ãŒã¿ãŒã䜿çšããå¿ èŠãããããšã«æ³šæããŠãã ããã ããšãã°ãEntityAPIControllerã¯ããšã³ãã£ãã£ã¯ã©ã¹ããã©ã¡ãŒã¿ãŒã䜿çšããŸãã ãã®å¯èœæ§ã¯ãentity_get_info颿°ïŒ$ entity_type = NULLïŒã®ãããã§éæãããŸããããã«ãããç®çã®ã¿ã€ãã®ãšã³ãã£ãã£ã«é¢ããããŒã¿ãååŸã§ããŸãã
ãšã³ãã£ãã£ã³ã³ãããŒã©ãŒ
ããã§ããã³ã³ãããŒã©ãŒã¯ã©ã¹ããã©ã¡ãŒã¿ãŒã§å®çŸ©ãããŠãããšã³ãã£ãã£ã³ã³ãããŒã©ãŒã«ã€ããŠèª¬æããŸãã å®éãã³ã³ãããŒã©ãŒã¯ãšã³ãã£ãã£ã®ããŒã¿ã管çããæ¹æ³ã§ãã ç§ãOOPã§æ°ã«å ¥ã£ãŠããã®ã¯ãã³ãŒããããå¹ççã«ããã ãã§ãªãããã®å éšã®ããã»ã¹ãçè§£ããããããããšã§ãã ã³ã³ãããŒã©ãŒã®åäœãçè§£ããããã«ãäžããã¬ãã¥ãŒãéå§ããŸãã å®çŸ©ã«ããã DrupalEntityControllerInterfaceã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ãããã©ã¡ãŒã¿ãŒã¯ããã³ã³ãããŒã©ãŒã¯ã©ã¹ã ãã©ã¡ãŒã¿ãŒã§æå®ããå¿ èŠããããŸã ã ãããŠããšã³ãã£ãã£ã®æŠå¿µã¯æããã«è€éã§ããããã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯é©ãã»ã©ãããã«ã§ãã å®è£ ã®ã¯ã©ã¹ã«3ã€ã®ã¡ãœããã®ã¿ãååšããããšãåæãšããŠããŸãã
DrupalEntityControllerInterface :: load-1ã€ä»¥äžã®ãšã³ãã£ãã£ãããŒãããŸãã ãšã³ãã£ãã£IDã®é åãæåã®åŒæ°ãšããŠããŒãããŸãã 2çªç®ã®åŒæ°ãšããŠã 'field' => 'value'ãšãã圢åŒã®ç¹å®ã®æ¡ä»¶ã®é åãåããŸãã
DrupalEntityControllerInterface :: resetCache-ãã¹ãŠã®ãšã³ãã£ãã£ïŒåŒæ°ãæå®ãããŠããªãå ŽåïŒãŸãã¯éžæããããšã³ãã£ãã£ã»ããïŒå¯Ÿå¿ããidé åãåŒæ°ãšããŠæž¡ãããŠããå ŽåïŒã®éçãã£ãã·ã¥ãã¯ãªã¢ïŒãã©ãã·ã¥ïŒããŸã
DrupalEntityControllerInterface :: __ construct-ã³ã³ã¹ãã©ã¯ã¿ãŒã åäžã®åŒæ°ãšããŠãã³ã³ãããŒã©ãŒã®ã€ã³ã¹ã¿ã³ã¹ãäœæãããšã³ãã£ãã£ã®ã¿ã€ããåãå ¥ããŸãã ãããã£ãŠãã³ã³ãããŒã©ãŒãäœæãããŠãããšã³ãã£ãã£ã®ã¿ã€ããããã£ãŠããå Žåãentity_get_infoïŒ$ entity_typeïŒã䜿çšããŠãã®ã¿ã€ãã®ãã©ã¡ãŒã¿ãŒãååŸããã³ã³ãããŒã©ãŒã®äœæãããã€ã³ã¹ã¿ã³ã¹ãã«ã¹ã¿ãã€ãºã§ããŸãã
ãããå®éã«ã¯ã©ã¹ã«å®è£ ããå¿ èŠããããã¹ãŠã®ã¡ãœããã§ããããšã³ãã£ãã£ã³ã³ãããŒã©ãŒãšåŒã°ããå®å šãªæš©å©ãæã£ãŠããŸãã ãã ããã»ãšãã©ã®å Žåãã€ã³ã¿ãŒãã§ã€ã¹ããŒãããå®è£ ããã®ã§ã¯ãªãã DrupalDefaultEntityControllerã¯ã©ã¹ããã³ã³ãããŒã©ãŒã¯ã©ã¹ãç¶æ¿ããããšã¯çã«ããªã£ãŠããŸãã
DrupalDefaultEntityControllerã¯äœãæäŸããŸããïŒ
- ãšã³ãã£ãã£ã¿ã€ãã®ãããŒã¹ããŒãã«ããšããªããžã§ã³ããŒãã«ãã®ãã©ã¡ãŒã¿ã§æå®ãããããŒã¿ããŒã¹ããŒãã«ãããã¿ã€ãã«é¢ä¿ãªããšã³ãã£ãã£ãããŒãããæ©èœã
- ãšã³ãã£ãã£ã¿ã€ãã®fieldableãã©ã¡ãŒã¿ãTRUEã«èšå®ãããŠããå ŽåãField APIã䜿çšããŠãšã³ãã£ãã£ããšã³ãã£ãã£ã«ã¢ã¿ããããŸãã
- ãšã³ãã£ãã£ãå¹ççã«ããŒãããæ©èœã ãã®ã¯ã©ã¹ã¯éçãã£ãã·ã¥ããµããŒãããŠããŸãã ïŒæ¬è³ªçã«ã¯ãDrupalEntityControllerInterfaceã€ã³ã¿ãŒãã§ãŒã¹ã®resetCacheã¡ãœããã¯ãéçãã£ãã·ã¥ããšã³ãã£ãã£ã³ã³ãããŒã©ãŒã«å®è£ ããå¿ èŠãããããšã瀺åããŠããŸãïŒã
ãããã£ãŠãDrupalDefaultEntityControllerã¯ããšã³ããŠãŒã¶ãŒåãã®æ©èœã®å®è£ ãç®æšãšããŠèšå®ãããéçºè ã«åºçºç¹ãæäŸããã ãã§ãã ããã«ããšã³ãã£ãã£ãäœããã®æ¹æ³ã§CRUDïŒèªã¿åããæŽæ°ãåé€ã®äœæïŒã®æŠå¿µãå®è£ ããå¿ èŠãããå Žåããšã³ãã£ãã£APIã¢ãžã¥ãŒã«ã§æç€ºãããããé«ãã¬ãã«ã®ã¯ã©ã¹-EntityAPIControllerããã³ã³ãããŒã©ãŒãç¶æ¿ããããšã¯çã«ããªã£ãŠããŸãã ãã ããEntity APIã®æäœã®ååãèæ ®ããããšã¯ããã®èšäºã®ç¯å²å€ã§ãããå¥ã®æ©äŒã«å°å¿µããŸãã