PHP 框架 Ding Framework 1.6.1 发布
openkk 13年前
Ding 是一个 PHP 框架,提供依赖注入(通过 Setter/Constructor/Method)、面向方面编程、XML、YAML、事件支持,使用 JSR 250/330 注解进行 Bean 定义。轻量级,可发布为 PHAR 文件,简单快速的 MVC 模型、syslog、非阻塞的 TCP socket 实现、定时器以及自定义错误、信号以及异常处理,PAGI 集成(用于 Asterisk 网关接口),PAMI 集成(用于 Asterisk 管理)。它具有以下特性: <ul> <li>Scalable architecture, allowing to easily adopt new features.</li> <li>Supports XML, YAML, and annotations as bean definitions providers.</li> <li>Lightweight, easy of use, and useful.</li> <li>Loosed-couple, just use what you need and nothing more.</li> <li>JSR-250: @PostConstruct, @PreDestroy, @Resouce</li> <li>JSR-330: @Named, @Inject, @Singleton</li> <li>Spring specific: @Configuration, @Primary, @Value, @Scope, @Component, @Aspect, @Required, @Bean, @Controller, @RequestMapping</li> <li>Own specific: @Prototype, @InitMethod, @DestroyMethod, @ListensOn, @MethodInterceptor, @ExceptionInterceptor</li> <li>Aware interfaces: <u>IContainerAware, IMessageSourceAware, IResourceLoaderAware, IBeanNameAware, IAspectManagerAware, ILoggerAware</u></li> <li>Bean inheritance through normal OOP or xml/yaml declarations.</li> <li>Bean aliasing for xml, yaml, and annotations.</li> <li>Extensions in the lifecycle: AfterDefinition, BeforeCreate, AfterCreate, BeforeAssemble, AfterAssemble</li> <li>Extensions for providing your own definitions: IBeanDefinitionProvider, IAspectProvider, IPointcutProvider</li> <li>Resources through php streams.</li> <li>Setter Injection (For arrays, scalar values, php code, and references to other beans).</li> <li>Constructor Injection (For the same data types as above).</li> <li>Method Injection (So you can have dependencies in singletons that must be created on demand).</li> <li>Can define factory beans, factory classes, and factory methods to create beans.</li> <li>Managed bean lifecycle (for singletons and prototypes).</li> <li>Initialization and destruction methods called by the container.</li> <li>Aspects (as in aspect oriented programming), for xml, yaml, and annotation drivers.</li> <li>Lightweight implementation of the MVC (Model View Controller) pattern. Can be used with or without <a href="/misc/goto?guid=4958198567936129296">Twig</a>, and <a href="/misc/goto?guid=4958340190194312017">Smarty</a></li> <li>Annotations used by helpers and the container (i.e: @InitMethod, @DestroyMethod, @Controller, etc).</li> <li>Can cache proxies and bean definitions with Zend_Cache, Memcached, Filesystem, and APC.</li> <li>Integration with PAMI and PAGI. So you can make asterisk (telephony) applications via agi and ami.</li> <li>Helpers: Syslog, TCPServer, TCPClient, etc.</li> <li>Error Handling, Signal Handling, Shutdown Handling, all via events.</li> </ul> <p>Ding Framework 1.6.1 发布,改进记录:</p> <blockquote> <p>This release moves signal definitions to the container constructor to avoid notices about undefined constants when running under a Web server module SAPI (pcntl is disabled<span class="truncate_more"> under Web server modules)</span></p> </blockquote>