----------------------------------------------------------------------------------
y \tg z@CharcoalPHP
yo[Wz@0.8.0
y  J  z@2008/9/28
y Җ z@stk2k
y 쌾 z@PHP
y zz z@BSDCZX
yĳʁz@I[v\[X\tgEFA
----------------------------------------------------------------------------------

CharcoalPHPɂ

CharcoalPHPPHP5ȏŎgp\WebAvP[Vt[[NłBCharcoalPHP͈ȉ̂悤ȃRZvgō܂B

EMVCI
EvO}ɉȂ񂪏Ȃ
E₷d邱ƂŊwKRXgȂĂ
EC^tF[Xɂ鍂xȃvOC\
EptH[}X͂
EˑCuȂ
EPHP5̋@\piOȂǁj
EDIRei^R|[lgu

mF

OS          : Windows XP/SP2
Web Server  : Apache 2.2.8(Win32)
Script      : PHP 5.2.5
DB          : MySQL 5.0.51a
              PostgreSQL 8.2.6

\

CharcoalPHP͉L̍\Ŕzz܂B

----------------------------------------
Et[[NRA
ER|[lgCu
ETvAvP[V
----------------------------------------

t[[NRA
@|t[[N\\[XꎮłB

R|[lgCu
@|CharcoalPHP񋟂{IȃR|[lgłB{o[Wł͉L񋟂܂B
@@|f[^x[XANZX
@@|K[
@@|y[W
@@|NǗ
@@|pXg
@@|[M

TvAvP[V
@|CharcoalPHP̋@\Љ邽߂̃TvAvP[VłB{o[Wł͉L񋟂܂B

@@|hello_world@@ŏCharcoalPHPAvP[V
@@|breadcrumb@@ pXg^LinkerR|[lg𗘗pTv
@@|pear_db@@@@f[^x[XANZXR|[lg𗘗pTv
@@|smarty@@@@ Smartyɂr[
@@|session@@@@ZbVî߁A{o[Wł͓삵܂j
@@|form@@@@@ tH[@\iSmartFormjî߁A{o[Wł͓삵܂j
@@|shell@@@@@CLIPHPVFvOTv
	|module_task@@^XN烂W[ĂяoTv

OCu

CharcoalPHP̓ftHgł͊OCuɈˑ܂B̃R|[lggpɂ
L̂悤ȊOCu_E[hACXg[Kv܂B

t[[NRA
ESpycihttp://spyc.sourceforge.net/j
@|ݒvoC_ƂSpycConfigProviderw肵ꍇBftHgł͕sv
EPEAR::Cache_Lite
@|ݒvoC_ƂCachedSpycConfigProviderw肵ꍇBftHgł͕sv

R|[lgCu
Ef[^x[XANZXR|[lg
@|PEAR::DB
E[MR|[lg
@|PEAR :: Mail
@|PEAR :: Mail_Mime

჌_
ESmartyihttp://www.smarty.net/j
@|_ƂSmartyRenderergpꍇBftHg͕sv
EPHPTALihttp://phptal.motion-twin.com/j
@|_ƂPHPTALRenderergpꍇBftHg͕sv

CũCXg[̓vt@Cݒt@CEXTLIB_DIRGgŎw肷邱Ƃł܂B



t[[NRA
E^XNɂƗ̍WbN\
ECxg^^XNɂ^s
E^XNFSMiLԃ}Vj@\ɂʑJڐT|[gi{o[Wł͖j
EtH[_OiSmartForm{html_objectsj
Ee[uA\VG[VɂΉORM@\iSmartGatewayj
Ef[^\[XASQLr_ɂRDBMSڑvOCi݂MySQLPostgreSQL̂݁j
ECAEg}l[Wɂ鎩Rx̍r[i{o[Wł͖j
É^o̓tB^ɂf[^ϊ
ENX[_ɂNX\[Xǂݍ݋@\
E$_SESSIONӎȂZbVǗ@\
ER|[lg̎ZbVۑ^@\isessionXR[vj
ECAEg}l[Wɂ鎩Rx̍r[
@|ftHgSmartyAPHPTAL_𓋍ځiʓrCuKvj




ECharcoalPHP̕R[hEUC-JPŋLqĂ܂B

CXg[@

PDA[JCu
---------------------------------------------------------

charcoalphp-x.x.x.zipix̓o[WԍjA[JCovOŉ𓀂ĂB

QDWebT[ofBNg쐬
---------------------------------------------------------

CharcoalPHPAvP[VzufBNg쐬܂BWebT[õhLg[gfBNgȉɓKȃfBNgiłcharcoalƂ܂j쐬ĂB

$DocumentRoot/charcoal


RDt[[NRANXzu
---------------------------------------------------------

P𓀂Ăłt@CAfBNgׂāAQō쐬fBNgȉɃRs[܂B


TvAvP[V

[J}VɃCXg[ꍇALURLANZXł܂B

http://localhost/charcoal/public_html/


Ɛӎ

{{\tgEFA̗pAρAĔzz͎RłA{\tgEFA𗘗pA܂͖{\tgEFA𗘗p\tgEFA
̗pɂ萶Ȃ鑹QɂĂۏ؂͂˂܂B


̗\

t[[NRA
@|Webt[@\̎
@|of[V@\̎
@|tH[@\̎                   ()
@|ꉻii18njΉ
@|ZbVǗ@̃vOC     ()
@|Qdeh~g[N
@|AiV[PXj̎
@|CLIΉ                              ()
@|CSML(CharcoalScreenMarkupLanguage^jΉ
@|t[[NWev[gVXe
@|AJAXΉiEBWFbgj
@|ݒt@C̃tH[}bgύXiJavavpeBt@C`j        ()
@|^XÑW[Ăяo        ()

R|[lgCu
@|f[^x[XANZXR|[lg
@@|MySQLȊODBւ̑Ή                     ()
@@|ADOdb^PDǑ
@@|O/R}bsO                             ()
@@|DBNX̕e[uiJOINjΉ        ()
@|[MR|[lg
@@|Ytt@CΉ

Ⴛ̑
@|Scaffolding@\
@|ptH[}X`[jO

ύX

2008-09-28 ver.0.8.0

@dlύX^@\ǉ

@yRAz
@@|Ś啔̊֐Aу\bḧString/Integer/Vector/BooleanTypeHintǉ܂BlCeBu^istring/
@@@array/booleanj̕ῗꂼs/i/v/b֐gpł܂B
@@|ŚvV[WReLXgiProcedureContextj͍폜܂BvV[WReLXgoRŎ擾ĂIuWFNg
@@@itH[ADBȂǁjTask擾Ăi^XNNXDatabaseTaskAFormTasǩpKvjB
@@|ZbVZbV@\͔p~܂Bo[WŃZbV@\̑Ƀ^XN̉i@\\łB
@@|^XNprocessEvent\bhłIEventNX܂BooleañCX^Xԋp悤ɎdlύX܂BIEventNX
@@@̃CX^Xԋpꍇ͂ꂪCxgL[ɍēABooleanNX̃CX^Xԋpꍇ̓^XNɑMꂽ
@@@CxgprocessEvent\bhŏꂽǂ\tOƂċ@\܂B
@@|basez^AzzNXVectorǉ
@@|baseL[\NXQueueǉ
@@|baseObjectNXequals\bhAisInstanceOf\bhǉ
@@|baseCharcoalExceptionNXɗOʂ邽߂hashCode\bhǉiIuWFNgƋʂ邽ID̍ŏuEvt^j
@@|charcoal.inc.php_throw֐ǉAthrow̑ɎgƂŃX[̃g[X\ɂȂ܂B̃g[X@\charcoal.inc.php
@@@ENABLE_INTERNAL_EXCEPTION_TRACEIvVON/OFF\łB
@@|charcoal.inc.php_catch֐ǉAcatch߂̒ŎgƂŗOߑ̃g[X\ɂȂ܂B̃g[X@\charcoal.inc.php
@@@ENABLE_INTERNAL_EXCEPTION_TRACEIvVON/OFF\łB
@@|class_loader⃆[U`NX[_p̊{NXUserClassLoaderNXǉ܂B
@@|G[ʁOX^bN̕\ʒu𒲐܂B
@@|\[Xу\[XLbV֘ÃNX폜܂B
@@|ჍOProfile#load()Ń[hꂽe_v邽߂ɃOʎquprofilevǉ܂BprofileOo͂邽߂ɂ̓vt@C
@@@ݒt@CLOG_LOGGERSGgɁuprofilevǉĂB
@@|ჍO^XNуCxg̋j^邽߂ɃOʎqueventvǉ܂BeventOo͂邽߂ɂ̓vt@C
@@@ݒt@CLOG_LOGGERSGgɁueventvǉĂB


@oOC

@yRAz
@@|Config#getArray()ŗvfŐ󔒕폜悤ύX܂B


2008-09-18 ver.0.7.0

@dlύX^@\ǉ

@yRAz
@@|LayoutManager̖̂PageSelectorɕύX܂iC^tF[XꕔύXjB
@@@|y[WZN^̓^XN̏Ԃ𔻒făy[WIAr[ɕKvȏ^XN擾ăZbg܂B
@@@|Smarty_iSmartyRendererjy[WZN^ɑΉ܂B
@@|DBNX̖̂SmartGatewayɕύX܂B
@@|StringNXequals\bhǉ܂B
@@|IDataSourceɉL̃\bhǉ܂B
@@@| ڑT[o擾igetServer)
@@@| ڑ[U擾igetUserj
@@@| ڑpX[h擾igetPasswordj
@@@| ڑf[^x[X擾igetDatabaseNamej
@@@| ڑ̕R[h擾igetCharacterSetj
@@@| ڑؒfidisconnectj

@@|ꕔ̃\bĥnƂ킩Ă̂ɂāATypeHintǉ܂iStringNXjB
@@@|lɁAԂ\bhɂĂStringIuWFNgԂ悤ɂ܂B
@@|OAOX^bN֒ǉ^C~OύX܂icatch߁OjBɂAG[ʂ̗OX^bN\₷Ȃ܂B

2008-09-08 ver.0.6.0

@dlύX^@\ǉ

@yRAz
@@|sx啝Ɍサ܂B
@@|ݒt@C֌W
@@@|ftHgYAMLJavavpeBt@C`iinit@CjɕύX܂B
@@@|VXeݒt@CAvP[Vݒt@CŃI[o[hł悤ɂ܂B
@@|fobO֌W
@@@|OX^bNiExceptionStackjNX܂B
@@@||bvAbvXN[K[iPopupScreenLoggerjNX܂B
@@|vt@C֌W
@@@|ftHgŊOCupX𖳌ƂAvt@CɗLtOiUSE_EXTLIBjAуCupXiEXTLIB_DIRjǉ܂B
@@|TypeSafeR[fBÔ߂̃v~eBuNXiBooleanAIntegerAStringj𓱓܂B

2008-07-02 ver.0.5.0

@dlύX^@\ǉ

@yŚz
@@|NXcharcoalvtBbNXׂč폜

@yRAz
@@|CHARCOAL_RUNMODEŃ[hiLQƁjw肷悤ɂ܂BtgRg[iindex.phpj̐擪defineĂB
@@@i`̏ꍇAUnexpectedRunModeExceptionX[܂j
@@@|httpWebAvP[V
@@@@|ŏɃ[hvt@C̃t@ĆuzXg.global.iniv
@@@|shellVFAvP[V
@@@@|ŏɃ[hvt@C̃t@Ćushell.global.iniviŒj

@@|XxxFactoryNXFactoryNXɂ܂Ƃ߂܂BAvɉe͂܂B

@@|ConfigLoader#loadConfigŐ擪defaultidefault.IuWFNg.ymlj̃ftHg`t@Cǂ܂Ȃ悤ɂ܂B
@@@邽߂ƁAptH[}X̂߂łB

@@|fBXpb`AW[Ot͔p~AɃ^XN}l[WA^XN܂B

@@|ptH[}XlbNɂȂĂOo͉ӏ폜܂͈ړ܂B

@@|FrameworkClassLoaderœK܂B

@@|̑AptH[}X`[jÔ߂̃t@N^Os܂B

@oOC

@yŚz
@@|php.inishort_open_tagtruePHPƂĉ߂Ȃ\[XCiV[g^OŋLqĂXNvgj܂B

@̗\

@@|ProcedureContext̓^XNContextƂĕ\łB
@@|ContextZbV擾ł܂A^XNXR[visessionXR[vjT|[gΕsvɂȂ܂̂ō폜܂B
@@|ev[gɃWbNȂ΂ȂȂP[X́ACSMLiCharcoal Screen Markup Languagejŉ\łBCSMLRpC
@@@W̃ev[gGWAg邱ƂŃev[gt@CɋLqł܂B
@@|^XN̏ʉ邽߁A^XN烂W[Ăяo悤ɂ܂B
@@|WebAPIOURLǂݍݎɃubN鎞ԂZk邽߂̕sT|[g܂B
@@|AJAXɑΉ܂B
@@|tH[of[^ADBof[^܂B


2008-06-23 ver.0.4.0

@dlύX^@\ǉ

@yRAz
@@|XNvg̃^CAEgvt@CŎwł悤ɂ܂iSCRIPT_TIMEOUTjBPʂ͕bAl10i=600bjłB
@@@|j^CAEgԂ1ԁi=3600bjɂ
@@@@@@@SCRIPT_TIMEOUT=3600
@yDBz
@@|e[uA\VG[ViKwNG@\jǉ܂BKwNG̓e[ufɈȉ̐ݒsƂɂAt[
@@@[Nɂ莩Iɏ܂Bڍׂ̓TvvOupear_dbṽ\[XQƂĂB

@@@|e[ufNXł̃Ame[VwF

@@@@@var $relation_name    = '@relation @target:[target_model_name] @linkage:[linkage] @extract:[extract]'

            [relation_name]       : ֘A
            [target_model_name]   : ֘Ae[uficonfig/table_modelsɒ`Kvj
            [linkage]             : P[Ww
                                         inner  : ֘AɊOL[iftHgj
                                         outer  : ֘AɊOL[
            [extract]             : tB[hWJ@
                                         array  : ʂzƂāAAme[V̎wΏۂ̑ɃZbgiftHgj
                                         field  : ʂ̍ŏ̃R[hAWJptB[hɓWJ

@@@|e[ufNXł̓WJtB[hwF

@@@@@var $extract_field    = '@extract @source:[model_name]/[field_name]'

            [extract_field]       : WJtB[h
            [model_name]          : WJe[uficonfig/table_modelsɒ`Kvj
            [field_name]          : WJtB[h


2008-06-02 ver.0.3.2

@dlύX^@\ǉ

@yRAz
@@|^C][vt@CŎwł悤ɂ܂iDEFAULT_TIMEZONE)B
@@@|j@DEFAULT_TIMEZONE=Asia/Tokyo
@yG[hLgz
@@|G[hLg̃t@CŒɕύXiXe[^XR[h + .tmlj
@@@|j@404.html
@yDBz
@@|query\bhŕGR[fBOϊIvVǉ
@yG[\z
@@|NX̂ƂNX\ȂsC
@@|obNg[X֐̏ꍇɑΉ
@yOz
@@|OɃxiF/E/W/I/D/Tjo͂悤ɏC
@ytH[z
@@|tH[f̃Ame[Vu@value:%DTO_VALUE%vp~AftHgDTOlZbg悤ɕύX
@@|IXg擾\bhiIFormMode#getChoiceListj̈ProcedureContextǉ
@@|tH[fAme[VɁu@hiddenvǉ
@@@|@hiddenw肳ꂽtB[hHTML_O<input type="hidden">o͂

@oOC

@yG[hLgz
@@|G[hLg̃fBNgzuԈĂ̂C

2008-05-30 ver.0.3.1

@dlύX^@\ǉ

@yݒt@Cz
@@|CharcoalPHP񋟂ftHg̐ݒt@CɊւĂweb_appȉɃRs[KvȂȂ܂B
@@@|t[[N񋟃NX̃JeS
@@@@|data_sources
@@@@@|pear_db
@@@@|dispatchers
@@@@@|simple_dispatcher
@@@@|filters
@@@@@|encoding_output
@@@@|loggers
@@@@@|app
@@@@@|debug
@@@@@|sql
@@@@@|system
@@@@|renderers
@@@@@|smarty
@@@@|session_handlers
@@@@@|default_session_handler
@@@@|sql_builders
@@@@@|mysql
@@@@|transformers
@@@@@|simple_transformer
@yDBz
@@|findn\bh͔z̔zԂĂAcharcoal_DTOIuWFNg̔zԂ悤ɕύX܂B
@ytH[z
@@|͎Əo͎ɈႤtH[P[XȂǂlAProcedureContextoRł̎擾i$context->formj߁AgetForm\bh
@@œIɎ擾@iProcedureContext#getFormjɕύX܂B
@@|tH[ffieldxŃpl`ȂĂIɍ쐬悤ύX܂B
@yW[z
@@|IModule::executeɈactionǉ܂Baction𔻒肷邱Ƃŕ̃W[Pɂ܂Ƃ߂邱Ƃł悤ɂȂ܂B
@@@|j
@@@@@@ShouhinAddModule/ShouhinDelModule/ShouhinUpdateModule ===> ShouhinModule
@yfobOz
@@|G[ꗗʂŃ\bḧA^AftHgl܂ŎQƂł悤ɂȂ܂B

@oOC

@yZbVz
@@|charcoal_Session#removeŏf[^_SESSIONɕۑĂ܂oOC

2008-05-27 ver.0.3.0-alpha

@yDBz
@@|DataModelTableModelɖ̕ύX
@ytH[z
@@|tH[f(/core/form_modelsj
@@|HTMLObject(/core/html_objectsj
@@|DTOgXtH[}i/core/transformersj
@yZbVz
@@|ZbVnh(/core/session_handlersjAZbV@\vOC
@yURL}bsOz
@@|URL}bpi/core/url_mappersjAÓIURLimod_rewitejɑΉ

2008-05-18 ver.0.2.0-alpha

@|zANZXE_NOTICE
@|RequestNX̓GETPOST̃f[^𕪂ĊǗ悤ɕύX
@@|GETp[^̂ݎoƂ͈ȉ̂悤ɂB
@@@@@@$data = $request->get( $key, charcoal_Request::TYPE_GET );
@|NX[_ƃZbVModuleGraphProcedure$execute()Framework#run()Ɉړ
@|EncodingConverterNXfromString\bhǉB킹ăRXgN^privateɕύX
@|DBR|[lgidb:DataGatewayj폜Acharcoal_DBNXǉi$context->dbŎ擾\jB
@@|SQLr_ǉ`RDBMSƂSQL𐶐NX`\ɂisql_buildersɔzuj
@@|f[^\[Xǉ`f[^x[XANZXCuƂDBڑ^sNX`\ɂidata_sourcesɔzuj
@@@|f[^x[X̐ڑݒ̓f[^\[Xݒt@Ciconfig/data_sources/xxx.data_source.ymljōsB
@@@@|`͈ȉ̂Ƃ
@@@@@@|backend: f[^x[XobNGhBw̕@̓f[^\[X̎ɂ܂B
@@@@@@|user: f[^x[Xڑ[UB
@@@@@@|password: f[^x[XڑpX[h
@@@@@@|server: ڑT[o
@@@@@@|db_name: ڑf[^x[X
@@@@@@|charset: ڑ̕R[h

2008-05-14 ver.0.1.0-alpha

@|ׂẴNX̐擪Ɂucharcoal_vvtBbNXt^
@|W[Otݒt@C̃tH[}bgύXFugraph_nodesvǉ
@|vt@CO[ovt@C̒ŕύX\ɁF@PROFILE_NAMEŎw
@|Config[gɂproc_list.iniɓo^ĂȂvV[Ww肳ꂽꍇ̓G[hLg\悤ɂ
@|HttpExceptionONXǉF@\[XŃXe[^XR[hHttpExceptionO𓊂邱ƂŎIɃG[hLg\B
@|Oo͕@ύXF@K[vOCł悤ɂBO[ovt@CŉL̂悤ɎwB
@@@|LOG_ENABLEDF@O@\ON/OFFw
@@@|LOG_LEVELF@Oo̓xwiF:FATAL E:ERROR W:WARNING I:INFO D:DEBUG T:TRACEj
@@@|LOG_LOGGERSF@K[wiJ}؂ŕwj
@|DB̃XgڂȂǁApɂɕωȂڂȂǂ̃f[^LbV@\ǉi\[XLbVj
@|ModuleContextNXAProcedureContextƂB
@|W[Ot烌_Oւ̃p[^]ProcedureContextł͂ȂResponseIuWFNgoR悤ɕύX

2008-04-22 ver.0.0.1-alpha

@|񃊃[X

