use repository and file classes
[phorkie.git] / src / Phorkie / File.php
1 <?php
2 namespace Phorkie;
3
4 class File
5 {
6     /**
7      * Full path to the file
8      *
9      * @var string
10      */
11     public $path;
12
13     /**
14      * Repository this file belongs to
15      *
16      * @var string
17      */
18     public $repo;
19
20     public function __construct($path, Repository $repo)
21     {
22         $this->path = $path;
23         $this->repo = $repo;
24     }
25
26     /**
27      * Get filename relative to the repository path
28      *
29      * @return string
30      */
31     public function getFilename()
32     {
33         return basename($this->path);
34     }
35
36     /**
37      * Returns the type of the file, as used internally by Phorkie
38      *
39      * @return string
40      */
41     public function getType()
42     {
43         return substr($this->path, strrpos($this->path, '.') + 1);
44     }
45
46     public function getContent()
47     {
48         return file_get_contents($this->path);
49     }
50
51     /**
52      * Get a link to the file
53      *
54      * @param string $type Link type. Supported are:
55      *                     - "raw"
56      *                     - "display"
57      *
58      * @return string
59      */
60     public function getLink($type)
61     {
62         if ($type == 'raw') {
63             return '/' . $this->repo->id . '/raw/' . $this->getFilename();
64         }
65         throw new Exception('Unknown type');
66     }
67 }
68
69 ?>