TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 05-31-2008, 04:58 PM   #1 (permalink)
is cute and cuddly
 
delayedinsanity's Avatar
 
Join Date: Mar 2008
Location: Vegas, Baby
Posts: 963
Thanks: 31
delayedinsanity is on a distinguished road
Default phpDoc

So I finally made the jump from using my pseudo docblock format of commenting to making it phpDoc compliant. I haven't finished recommenting everything yet, so I haven't run it through phpDoc, but I have a question.

In one of my books which has a chapter on phpDoc, it states

Quote:
A file comment should be the first DocBlock in a document. It should contain a @package tag, and it should not directly precede a coding construct. In other words, if you add a file-level Docblock, you should ensure that you also add a class-level comment before the first class declaration.
So here's my question. That makes it sound like a class level DocBlock should almost if not directly follow a file level DocBlock. What if I have an include and a few commands first, ie:

PHP Code:
..end of file-level Docblock */

include(
$_SERVER['DOCUMENT_ROOT'].'/bin/lib/tuatara.config.php');

// Session is instantiated within controller
tuatara::loadEmpty('core''session');

// Page Specific
 
$szCommand = (array_key_exists('cmd'$_GET)) ? $_GET['cmd'] : 'logout';
new 
controller($szCommand);

/**
 * ..start of class-level Docblock.. 
Is that incorrect?
-m
delayedinsanity is offline  
Reply With Quote
Old 05-31-2008, 05:31 PM   #2 (permalink)
is cute and cuddly
 
delayedinsanity's Avatar
 
Join Date: Mar 2008
Location: Vegas, Baby
Posts: 963
Thanks: 31
delayedinsanity is on a distinguished road
Default

Another minor question, if I have a function that just includes another file, would that be considered a void return, or what do you use?
-m
delayedinsanity is offline  
Reply With Quote
Old 06-01-2008, 04:42 PM   #3 (permalink)
The Frequenter
Zend Certified 
 
Join Date: Sep 2007
Location: Denmark
Posts: 352
Thanks: 8
Kalle is on a distinguished road
Default

The @package command is used at the page level docblock and the class level docblock like below:

PHP Code:
<?php
    
/**
     * @author    Kalle Sommer Nielsen <kalle@php.net>
     * @package    TalkPHP
     */


    /**
     * Some external class
     *
     * @author    TalkPHP Community <community@talkphp.com>
     * @package    TalkPHP_External
     */
    
class TalkPHP_External
    
{
        
/* ... */
    
}
?>
=)
__________________
Send a message via MSN to Kalle Send a message via Skype™ to Kalle
Kalle is offline  
Reply With Quote
Old 06-04-2008, 12:07 AM   #4 (permalink)
The Acquainted
 
wGEric's Avatar
 
Join Date: Nov 2007
Posts: 166
Thanks: 0
wGEric is on a distinguished road
Default

I believe you have to have an empty block before any code. I'm not sure though. Something like

PHP Code:
..end of file-level Docblock */

/**
*/

include($_SERVER['DOCUMENT_ROOT'].'/bin/lib/tuatara.config.php');

// Session is instantiated within controller
tuatara::loadEmpty('core''session');

// Page Specific
 
$szCommand = (array_key_exists('cmd'$_GET)) ? $_GET['cmd'] : 'logout';
new 
controller($szCommand);

/**
 * ..start of class-level Docblock.. 
__________________
Eric
wGEric is offline  
Reply With Quote
Old 06-04-2008, 12:20 AM   #5 (permalink)
is cute and cuddly
 
delayedinsanity's Avatar
 
Join Date: Mar 2008
Location: Vegas, Baby
Posts: 963
Thanks: 31
delayedinsanity is on a distinguished road
Default

I'm three files away from finishing adding docblocks to my code... took almost as long as coding, I think, but that could be partially due to the fact that it's the first time I've open a few classes in a while and I did a lot of tidying up at the same time.

When I'm done I'll run phpDoc on it and see if it throws out any warnings or flips me off, you know any of the regular stuff, and whatever the result I'll post here just so it's there for reference. Not that anybody has ever been known to use a forums search feature anyways, but just in case.
-m
delayedinsanity is offline  
Reply With Quote
Old 06-04-2008, 06:44 PM   #6 (permalink)
The Frequenter
Newcomer 
 
xenon's Avatar
 
Join Date: Dec 2007
Location: Bucharest, Romania
Posts: 438
Thanks: 3
xenon is on a distinguished road
Default

You got the idea the wrong way. The page-level doc-block represents a description of the entire file, whilst a class-level doc-block represents a description for that class only. Example:

PHP Code:
<?php
/**
 * PAGE LEVEL DOC BLOCK
 *
 * @package main
 */

/**
 * CLASS LEVEL DOC BLOCK
 *
 * @package core
 * @subpackage classes
 */
class TestClass
{
   
// ...
}
About your minor question, yes, but you don't need to add a @return void statement to your function comment, void is implied if no return statement is supplied.
__________________
I have optimistic thoughts, even though sometimes (if not always) life's a bitch.
xenon is offline  
Reply With Quote
Old 06-04-2008, 07:23 PM   #7 (permalink)
is cute and cuddly
 
delayedinsanity's Avatar
 
Join Date: Mar 2008
Location: Vegas, Baby
Posts: 963
Thanks: 31
delayedinsanity is on a distinguished road
Default

I don't think I have the wrong idea though. I know what the difference is between a page level and a class level docblock. I was curious if the page-level one would be ignored or reference improperly due to the fact that I had pagedocblock->include()->classdocblock and according to 'http://phpdocu.sourceforge.net/howto.php' I was right. If there's any code construct immediately following the page level docblock, it's no longer considered a page-level but instead a docblock for that construct, even if it's as simple as defining a variable or constant. So it would seem wGEric has the right idea, include a third docblock that's either empty or includes a short description of what's going on between the page level and class level.

I wasn't aware however that if a return was void you could omit the statement, thank you. I think, partially since I've already included them everywhere and partially because I just think the word void sounds cool.
-m
delayedinsanity is offline  
Reply With Quote
Old 06-04-2008, 10:04 PM   #8 (permalink)
The Acquainted
 
wGEric's Avatar
 
Join Date: Nov 2007
Posts: 166
Thanks: 0
wGEric is on a distinguished road
Default

@ignore might be useful in the empty block.
__________________
Eric
wGEric is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 10:33 PM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design