## Apache Zeta Components Manual :: Todo List

### Todo List

### Reflection

#### ezcReflectionArrayType

- add support for ArrayAccess stuff from http://www.php.net/~helly/php/ext/spl/

#### ezcReflectionTypeFactoryImpl::getType()

- ArrayAccess stuff, how to handle? has to be implemented

### DatabaseSchema

#### ezcDbSchemaPgsqlWriter::applyDiffToDb()

- check for failed transaction

#### ezcDbSchemaSqliteWriter::applyDiffToDb()

- check for failed transaction

#### ezcDbSchemaMysqlWriter::applyDiffToDb()

- check for failed transaction

#### ezcDbSchemaOracleWriter::applyDiffToDb()

- check for failed transaction

#### ezcDbSchemaAutoIncrementIndexValidator

- implement from an interface

#### ezcDbSchemaIndexFieldsValidator

- implement from an interface

#### ezcDbSchemaTypesValidator

- implement from an interface

#### ezcDbSchemaUniqueIndexNameValidator

- implement from an interface

#### ezcDbSchemaSqliteWriter::generateDropTableSql()

- use DROP IF EXISTS that supported since SQLite 3.3

#### ezcDbSchemaPhpArrayWriter::saveDiffToFile()

- throw exception when file can not be opened

#### ezcDbSchemaXmlWriter::saveDiffToFile()

- throw exception when file can not be opened

#### ezcDbSchemaPgsqlWriter::saveToDb()

- check for failed transaction

#### ezcDbSchemaXmlWriter::saveToFile()

- throw exception when file can not be opened

#### ezcDbSchemaPhpArrayWriter::saveToFile()

- throw exception when file can not be opened

#### ezcDbSchemaValidator::validate()

- implement from an interface

### TranslationCacheTiein

#### ezcTranslationCacheBackend::setOptions()

- Implement ezcBaseOptions class, if options are added.

### Base

#### ezcBaseFeatures::findExecutableInPath()

- consider using getenv( 'PATH' ) instead of $_ENV['PATH'] (but that won't work under IIS)

### Feed

#### ezcFeed

- parse() and parseContent() should(?) handle common broken XML files (for example if the first line is not <?xml version="1.0"?>)

### Mail

#### ezcMailImapTransport::$serverType

- Add identification strings for each existing IMAP server?

#### ezcMailSmtpTransport::authDigestMd5()

- implement auth-int and auth-conf quality of protection (qop) modes
- support other algorithms than md5-sess?

#### ezcMailSmtpTransport::connect()

- The @ should be removed when PHP doesn't throw warnings for connect problems

#### ezcMailImapTransport::copyMessages()

- Find out if it is possible to catch this IMAP bug.

  $messages can be:

  - a single message number (eg: '1')
  - a message range (eg. '1:4')
  - a message list (eg. '1,2,4')
  Before calling this method, a connection to the IMAP server must be established and a user must be authenticated successfully, and a mailbox must be selected (the mailbox from which messages will be copied).

  Example of copying 3 messages to a mailbox:

  1. $imap = new ezcMailImapTransport ( 'imap.example.com' );
  2. $imap-> authenticate ( 'username', 'password' );
  3. $imap-> selectMailbox ( 'Inbox' );
  5. $imap-> copyMessages ( '1,2,4', 'Reports 2006' );

  The above code will copy the messages with numbers 1, 2 and 4 from Inbox to Reports 2006.

#### ezcMailFilePart

- MimeType recognition

#### ezcMailImapTransport

- // support for signing?
- ignore messages of a certain size?
- listUniqueIdentifiers(): add UIVALIDITY value to UID (like in POP3). (if necessary).

#### ezcMailPop3Transport

- // support for signing?
- ignore messages of a certain size?

#### ezcMailImapTransport::listUniqueIdentifiers()

- add UIVALIDITY value to UID (like in POP3) (if necessary).

#### ezcMailParser::setTmpDir()

- throw if the directory is not writeable.

### Webdav

#### ezcWebdavFileBackend::acquireLock()

- The locking mechanism affects the ETag of the base collection. The ETag is different on each request, which might result in problems for clients that make extensive use of If-* headers. No client is known so far, if problems occur here we need to find a solution for this.

#### ezcWebdavServer::isAuthorized()

- Mark protected as soon as API is final.

#### ezcWebdavHeaderHandler::parseIfMatchHeader()

- Do we need to provide support for weak entity tags?

#### ezcWebdavTransport::processGetCollectionResponse()

- We should possibly offer an ezcWebdavTemplateTiein, which brings an extension that adds a directory listing body here (possibly in selectable formats like XHTML, HTML, Apache style, ...).

### ImageConversion

#### ezcImageGdHandler::luminanceColorScale()

- Optimization as described here: http://lists.ez.no/pipermail/components/2005-November/000566.html

#### ezcImageGdHandler::thresholdColorScale()

- Optimization as described here: http://lists.ez.no/pipermail/components/2005-November/000566.html

### ImageAnalysis

#### ezcImageAnalyzerImagemagickHandler::analyzeImage()

- Check for translucent transparency.
- Why does ImageMagick return the wrong file size on TIFF with comments?

### ConsoleTools

#### ezcConsoleInput::unregisterAlias()

- Check if $short and $long refer to the same option!

### Graph

#### ezcGraphChartElementLabeledAxis::MAX_LABEL_COUNT

- Perhaps base this on the chart size

### Authentication

#### ezcAuthenticationOpenidFilter

- add support for fetching extra data as in OpenID attribute exchange http://issues.ez.no/14847
- add support for multiple URLs in each category at discovery
- add support for XRI identifiers and discovery
- check if the nonce handling is correct (openid.response_nonce?)
- check return_to in the response

#### ezcAuthenticationOpenidFilter::STATUS_URL_INCORRECT

- remove and return STATUS_SIGNATURE_INCORRECT instead?

### Database

#### ezcQuery::arrayFlatten()

- public? Currently this is needed for QueryExpression.

#### ezcQuerySelect

- introduction needs examples with clone(), reusing a query and advanced binding.

#### ezcQueryUpdate::getQuery()

- wrong exception

#### ezcQuerySelect::getQuery()

- add newlines? easier for debugging

#### ezcQueryDelete::getQuery()

- wrong exception

### MvcTools

#### ezcMvcRequestFile::$status

- Mention what the different status codes mean.

### Url

#### ezcUrlTools::getCurrentUrl()

- check for proxy servers
  - Use $_SERVER['HTTP_X_FORWARDED_SERVER']?
- check if REQUEST_URI works in Windows + IIS.
  - Use PHP_SELF instead?
  - Or use SCRIPT_NAME + QUERY_STRING?
  - Or even use an ISAPI filter?

### Workflow

#### ezcWorkflowDefinitionStorageXml

- DTD for the XML file.

Documentation generated by phpDocumentor 1.4.3