View remaining code
1/**2* @return String|boolean The view file currently being rendered. False If no view file is being rendered.3* The view file currently being rendered4*/5 Publicfunction Getviewfile ()6 {7returnEnd ($ This-_viewfiles);8 }9Ten/** One* This method was invoked right before [[[RenderFile ()]] renders a view file. A* The default implementation would trigger the [[Event_before_render]] EVENT. -* Pre-event, called when executing [RenderFile ()], default trigger [[Event_before_render]] event -* If You override this method and make sure your call the parent implementation first. the* @param string $viewFile The view file to be rendered. The Views files to render. -* @param array $params The parameter array passed to the [[Render ()]] method. -* The parameter array is passed to the [render ()] method. -* @return The Boolean whether to continue rendering the view file. +*/ - Publicfunction BeforeRender ($viewFile, $params) + { A$Event=NewViewEvent ([//Instantiate ViewEvent at'Viewfile'=$viewFile, -'params'= = $params, - ]); -$ This->trigger (Self::event_before_render, $Event);//Trigger [Event_before_render] Event - -return$Event->isvalid;//determine whether to continue rendering the file in } - to/** +* This method was invoked right after [[RenderFile ()]] renders a view file. -* The default implementation would trigger the [[Event_after_render]] EVENT. the* Post-event, called after the [RenderFile ()] method is executed, the [[Event_after_render]] event is triggered by default ** If You override this method and make sure your call the parent implementation first. $* @param string $viewFile The view file being rendered. Panax Notoginseng* @param array $params The parameter array passed to the [[Render ()]] method. -* The parameter array is passed to the [render ()] method. the* @param string $output The rendering result of the view file. Updates to this parameter +* 'll be passed back and returned by [[RenderFile ()]]. A* Returns the result of view rendering the*/ + Publicfunction AfterRender ($viewFile, $params, &$output) - { $if($ This->haseventhandlers (Self::event_after_render)) {//determine if [Event_after_render] event exists $$Event=NewViewEvent ([ -'Viewfile'=$viewFile, -'params'= = $params, the'Output'=$output, - ]);Wuyi//Trigger [Event_after_render] Event the$ This->trigger (Self::event_after_render, $Event); -$output = $Event->output;//return Results Wu } - } About $/** -* Renders a view file as a PHP script. -* Returns a view file as a PHP script -* This method treats the view file as a PHP script and includes the file. A* It extracts the given parameters and makes them available in the view file. +* The method captures the output of the included view file and returns it as a string. the* Convert incoming parameter to variable, include and execute view file, return execution result -* This method should mainly is called by View renderer or [[RenderFile ()]]. $ * the* @param string $_file_ The view file. the* @param array $_params_ The parameters (Name-value pairs) that would be extracted and made available in the view File. the* @return string The rendering result execution results the*/ - Publicfunction Renderphpfile ($_file_, $_params_ = []) in { theOb_start ();//turn on output buffering theOb_implicit_flush (false);//Close Buffer AboutExtract ($_params_, extr_overwrite);//converts an array to a variable using the therequire ($_file_); the thereturnOb_get_clean ();//gets the contents of the buffer area and clears the current output buffer + } - the/**Bayi* Renders dynamic content returned by the given PHP statements. the* This method was mainly used together with content caching (fragment caching and page caching) the* Used to aggregate cached content -* When some portions of the content (called *dynamic content*) should isn't be cached. -* The dynamic content must is returned by some PHP statements. the* Render some dynamic content returned by a PHP statement the* @param string $statements The dynamic content of the PHP statements for generating. Generates a PHP statement that dynamically contents. the* @return String The placeholder of the dynamic content, or the dynamic content if there is no the* Active Contents cache currently. Dynamic content placeholder Call Evaluatedynamiccontent Output If there is currently no valid content cache -*/ the Publicfunction renderdynamic ($statements) the { theif(!empty ($ This->cachestack)) {//the list of dynamic content is not empty94$n = Count ($ This->dynamicplaceholders);//Statistics Dynamic Content bar number the$placeholder ="YII-DYNAMIC-$n";//Generate placeholders the$ This->adddynamicplaceholder ($placeholder, $statements);//Add a dynamic content placeholder the98return$placeholder; About}Else{//no valid cache executes the incoming PHP statement, returning the execution result -return$ This-evaluatedynamiccontent ($statements);101 }102 }103104/** the* Adds A placeholder for dynamic contents. Add a dynamic content placeholder106* This method is internally used. Internal Use107* @param string $placeholder The placeholder name placeholder108* @param string $statements The PHP statements for generating the dynamic content109* PHP statements that generate dynamic content the*/111 Publicfunction Adddynamicplaceholder ($placeholder, $statements) the {113foreach($ This->cachestack as$cache) { the$cache->dynamicplaceholders[$placeholder] = $statements;//Add a dynamic content placeholder the } the$ This->dynamicplaceholders[$placeholder] = $statements;//Add a dynamic content placeholder to the current view117 }118119/** -* Evaluates the given PHP statements. The value of the given PHP statement121* This method was mainly used internally to implement dynamic content feature122* @param string $statements The PHP statements to be evaluated. PHP Statement for calculation123* @return Mixed the return value of the PHP statements. The value of the PHP statement124*/ the Publicfunction Evaluatedynamiccontent ($statements)126 {127returneval ($statements); - }129 the/**131* begins recording a block. the* This method was a shortcut to beginning [[Block]]133* Data Block start tag, this method is the shortcut to start [block]134* Data blocks can be specified in one place the view content is displayed in another place, usually with the layout135* @param string $id The block ID. Data Block identification136* @param Boolean $renderInPlace whether to render the block contents in place. Whether to render chunk content. 137* Defaults to False, meaning the captured block won't be displayed.138* @return block The Block widget instance block widget instance139*/ $ Publicfunction Beginblock ($id, $renderInPlace =false)141 {142returnBlock::begin ([143'ID'= $id,//data block Unique identification144'Renderinplace'= $renderInPlace,//whether the identity is displayed145'View'= = $ This,146 ]);147 }148149/** Max* Ends Recording a block. Data Block End identification151*/ the Publicfunction Endblock ()153 {154block::end ();155 }156157/**158* Begins the rendering of content is decorated by the specified view.159* This method can is used to implement nested layout. For example, a layout can embedded the* In another layout file specified as ' @app/views/layouts/base.php ' like the following:161* Start the specified view render content, used to implement the nested layout, the first parameter passed to the path of the layout file162 * ~~~163*
begincontent (' @app/views/layouts/base.php ');?>164* ... layout content here ...165*
endcontent ();?>166 * ~~~167 *168* @param string $viewFile The view file that'll be used to decorate the content enclosed by this widget.169* This can be specified as either the path or path alias of the view file path or path alias. the* @param array $params the variables (name = value) to being extracted and made available in the decorative Vie W.171* Parameters that can be used in the view172* @return Contentdecorator the Contentdecorator widget instance part instance173* @see Contentdecorator174*/175 Publicfunction Begincontent ($viewFile, $params= [])176 {177returnContentdecorator::begin ([178'Viewfile'=$viewFile,179'params'= = $params, the'View'= = $ This,181 ]);182 }183184/**185* Ends the rendering of content. End Rendering186*/187 Publicfunction endcontent ()188 {189contentdecorator::end (); the }191192/**193* begins fragment caching. Start Fragment Cache194* This method would display cached content if it is available.195* If not, it'll start caching and would expect an [[Endcache ()]]196* Call to end the cache and save the content into cache.197* Display the available cache content, otherwise the cache content will start until the [Endcache ()] method appears198* A Typical usage of fragment caching is as follows,199 * $ * ~~~201* if ($this->begincache ($id)) {202*//... generate content here203* $this->endcache ();204 * }205 * ~~~206 *207* @param string $id a unique ID identifying the fragment to be cached. Unique identifier of the cache fragment208* @param array $properties initial property values for [[FragmentCache]] initial properties [FragmentCache]209* @return Boolean whether you should generate the contents for caching. Whether to generate cached content. About* False If the cached version is available.211*/212 Publicfunction Begincache ($id, $properties = [])213 {214$properties ['ID'] = $id;//Fragment Identification215$properties ['View'] = $ This;//Invoking initialization Properties216/*@var $cache FragmentCache*/217$cache =Fragmentcache::begin ($properties);218if($cache->getcachedcontent ()!==false) {219$ This->endcache ();//reads the cached content from the cache, renders the content and returns false, no longer caches -221returnfalse;222}Else {223returntrue;224 }225 }226227/**228* Ends fragment caching. End Fragment Cache229*/ the Publicfunction Endcache ()231 {232fragmentcache::end ();233 }234235/**236* Marks The beginning of a page. Start tag237*/238 Publicfunction beginpage ()239 { -Ob_start ();//turn on output buffering241Ob_implicit_flush (false);//Close Buffer242243$ This-trigger (self::event_begin_page);244 }245246/**247* Marks The ending of a page. End tag248*/249 Publicfunction EndPage () - {251$ This-trigger (self::event_end_page);252Ob_end_flush ();//Close Output Buffers253}
The above describes the Android source learning yii2 Source Learning Note 19, including the Android source learning content, I hope that the PHP tutorial interested in a friend helpful.