16 |
17 |
= lang('Errors.whoops') ?>
18 |
19 |
= lang('Errors.weHitASnag') ?>
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/Views/home.php:
--------------------------------------------------------------------------------
1 | home.
--------------------------------------------------------------------------------
/app/Views/layout.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
13 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/builds:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | 'vcs',
68 | 'url' => GITHUB_URL,
69 | ];
70 | }
71 |
72 | // Define the "require"
73 | $array['require']['codeigniter4/codeigniter4'] = 'dev-develop';
74 | unset($array['require']['codeigniter4/framework']);
75 | }
76 |
77 | // Release
78 | else
79 | {
80 | // Clear 'minimum-stability'
81 | unset($array['minimum-stability']);
82 |
83 | // If the repo is configured then clear it
84 | if (isset($array['repositories']))
85 | {
86 | // Check for the CodeIgniter repo
87 | foreach ($array['repositories'] as $i => $repository)
88 | {
89 | if ($repository['url'] == GITHUB_URL)
90 | {
91 | unset($array['repositories'][$i]);
92 | break;
93 | }
94 | }
95 | if (empty($array['repositories']))
96 | {
97 | unset($array['repositories']);
98 | }
99 | }
100 |
101 | // Define the "require"
102 | $array['require']['codeigniter4/framework'] = LATEST_RELEASE;
103 | unset($array['require']['codeigniter4/codeigniter4']);
104 | }
105 |
106 | // Write out a new composer.json
107 | file_put_contents($file, json_encode($array, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES) . PHP_EOL);
108 | $modified[] = $file;
109 | }
110 | else
111 | {
112 | echo 'Warning: Unable to decode composer.json! Skipping...' . PHP_EOL;
113 | }
114 | }
115 | else
116 | {
117 | echo 'Warning: Unable to read composer.json! Skipping...' . PHP_EOL;
118 | }
119 | }
120 |
121 | // Paths config and PHPUnit XMLs
122 | $files = [
123 | __DIR__ . DIRECTORY_SEPARATOR . 'app/Config/Paths.php',
124 | __DIR__ . DIRECTORY_SEPARATOR . 'phpunit.xml.dist',
125 | __DIR__ . DIRECTORY_SEPARATOR . 'phpunit.xml',
126 | ];
127 |
128 | foreach ($files as $file)
129 | {
130 | if (is_file($file))
131 | {
132 | $contents = file_get_contents($file);
133 |
134 | // Development
135 | if ($dev)
136 | {
137 | $contents = str_replace('vendor/codeigniter4/framework', 'vendor/codeigniter4/codeigniter4', $contents);
138 | }
139 |
140 | // Release
141 | else
142 | {
143 | $contents = str_replace('vendor/codeigniter4/codeigniter4', 'vendor/codeigniter4/framework', $contents);
144 | }
145 |
146 | file_put_contents($file, $contents);
147 | $modified[] = $file;
148 | }
149 | }
150 |
151 | if (empty($modified))
152 | {
153 | echo 'No files modified' . PHP_EOL;
154 | }
155 | else
156 | {
157 | echo 'The following files were modified:' . PHP_EOL;
158 | foreach ($modified as $file)
159 | {
160 | echo " * {$file}" . PHP_EOL;
161 | }
162 | echo 'Run `composer update` to sync changes with your vendor folder' . PHP_EOL;
163 | }
164 |
--------------------------------------------------------------------------------
/codecov.yml:
--------------------------------------------------------------------------------
1 | coverage:
2 | precision: 2
3 | round: down
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "samsonasik/ci4-vue",
3 | "description": "CodeIgniter4 starter app with Vue.js Integration",
4 | "license": "MIT",
5 | "type": "project",
6 | "authors": [
7 | {
8 | "name": "Abdul Malik Ikhsan",
9 | "email": "samsonasik@gmail.com",
10 | "homepage": "http://samsonasik.wordpress.com",
11 | "role": "Developer"
12 | }
13 | ],
14 | "homepage": "https://codeigniter.com",
15 | "support": {
16 | "forum": "http://forum.codeigniter.com/",
17 | "source": "https://github.com/codeigniter4/CodeIgniter4",
18 | "slack": "https://codeigniterchat.slack.com"
19 | },
20 | "require": {
21 | "php": "~8.2.0 || ~8.3.0 || ~8.4.0",
22 | "codeigniter4/framework": "^4.6"
23 | },
24 | "require-dev": {
25 | "codeigniter/coding-standard": "^1.0",
26 | "infection/infection": "^0.29.10",
27 | "mikey179/vfsstream": "1.6.*",
28 | "phpspec/prophecy-phpunit": "^2.0",
29 | "phpunit/phpunit": "^11.0",
30 | "rector/rector": "^2.0"
31 | },
32 | "autoload": {
33 | "psr-4": {
34 | "App\\": "app"
35 | }
36 | },
37 | "autoload-dev": {
38 | "psr-4": {
39 | "CodeIgniter4\\": "vendor/codeigniter4/codeigniter4-standard/CodeIgniter4/",
40 | "Tests\\": "tests",
41 | "Tests\\Support\\": "tests/_support"
42 | }
43 | },
44 | "config": {
45 | "allow-plugins": {
46 | "infection/extension-installer": true
47 | },
48 | "platform": {
49 | "php": "8.2.99"
50 | },
51 | "preferred-install": {
52 | "*": "dist"
53 | },
54 | "sort-packages": true
55 | },
56 | "scripts": {
57 | "post-update-cmd": [
58 | "@composer dump-autoload"
59 | ],
60 | "cs-check": "php-cs-fixer fix --dry-run --diff",
61 | "cs-fix": "php-cs-fixer fix",
62 | "test": "phpunit"
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/data/portfolio.php:
--------------------------------------------------------------------------------
1 | 1,
7 | 'title' => 'Website A',
8 | 'image' => 'https://placehold.co/150?text=website%20A',
9 | 'link' => 'https://www.website-a.com',
10 | ],
11 | [
12 | 'id' => 2,
13 | 'title' => 'Website B',
14 | 'image' => 'https://placehold.co/150?text=website%20B',
15 | 'link' => 'https://www.website-b.com',
16 | ],
17 | [
18 | 'id' => 3,
19 | 'title' => 'Website C',
20 | 'image' => 'https://placehold.co/150?text=website%20C',
21 | 'link' => 'https://www.website-c.com',
22 | ],
23 | ];
24 |
--------------------------------------------------------------------------------
/env:
--------------------------------------------------------------------------------
1 | #--------------------------------------------------------------------
2 | # Example Environment Configuration file
3 | #
4 | # This file can be used as a starting point for your own
5 | # custom .env files, and contains most of the possible settings
6 | # available in a default install.
7 | #
8 | # By default, all of the settings are commented out. If you want
9 | # to override the setting, you must un-comment it by removing the '#'
10 | # at the beginning of the line.
11 | #--------------------------------------------------------------------
12 |
13 | #--------------------------------------------------------------------
14 | # ENVIRONMENT
15 | #--------------------------------------------------------------------
16 |
17 | # CI_ENVIRONMENT = production
18 |
19 | #--------------------------------------------------------------------
20 | # APP
21 | #--------------------------------------------------------------------
22 |
23 | # app.baseURL = ''
24 | # If you have trouble with `.`, you could also use `_`.
25 | # app_baseURL = ''
26 | # app.forceGlobalSecureRequests = false
27 | # app.CSPEnabled = false
28 |
29 | #--------------------------------------------------------------------
30 | # DATABASE
31 | #--------------------------------------------------------------------
32 |
33 | # database.default.hostname = localhost
34 | # database.default.database = ci4
35 | # database.default.username = root
36 | # database.default.password = root
37 | # database.default.DBDriver = MySQLi
38 | # database.default.DBPrefix =
39 | # database.default.port = 3306
40 |
41 | # database.tests.hostname = localhost
42 | # database.tests.database = ci4_test
43 | # database.tests.username = root
44 | # database.tests.password = root
45 | # database.tests.DBDriver = MySQLi
46 | # database.tests.DBPrefix =
47 | # database.tests.port = 3306
48 |
49 | #--------------------------------------------------------------------
50 | # CONTENT SECURITY POLICY
51 | #--------------------------------------------------------------------
52 |
53 | # contentsecuritypolicy.reportOnly = false
54 | # contentsecuritypolicy.defaultSrc = 'none'
55 | # contentsecuritypolicy.scriptSrc = 'self'
56 | # contentsecuritypolicy.styleSrc = 'self'
57 | # contentsecuritypolicy.imageSrc = 'self'
58 | # contentsecuritypolicy.baseURI = null
59 | # contentsecuritypolicy.childSrc = null
60 | # contentsecuritypolicy.connectSrc = 'self'
61 | # contentsecuritypolicy.fontSrc = null
62 | # contentsecuritypolicy.formAction = null
63 | # contentsecuritypolicy.frameAncestors = null
64 | # contentsecuritypolicy.frameSrc = null
65 | # contentsecuritypolicy.mediaSrc = null
66 | # contentsecuritypolicy.objectSrc = null
67 | # contentsecuritypolicy.pluginTypes = null
68 | # contentsecuritypolicy.reportURI = null
69 | # contentsecuritypolicy.sandbox = false
70 | # contentsecuritypolicy.upgradeInsecureRequests = false
71 | # contentsecuritypolicy.styleNonceTag = '{csp-style-nonce}'
72 | # contentsecuritypolicy.scriptNonceTag = '{csp-script-nonce}'
73 | # contentsecuritypolicy.autoNonce = true
74 |
75 | #--------------------------------------------------------------------
76 | # COOKIE
77 | #--------------------------------------------------------------------
78 |
79 | # cookie.prefix = ''
80 | # cookie.expires = 0
81 | # cookie.path = '/'
82 | # cookie.domain = ''
83 | # cookie.secure = false
84 | # cookie.httponly = false
85 | # cookie.samesite = 'Lax'
86 | # cookie.raw = false
87 |
88 | #--------------------------------------------------------------------
89 | # ENCRYPTION
90 | #--------------------------------------------------------------------
91 |
92 | # encryption.key =
93 | # encryption.driver = OpenSSL
94 | # encryption.blockSize = 16
95 | # encryption.digest = SHA512
96 |
97 | #--------------------------------------------------------------------
98 | # HONEYPOT
99 | #--------------------------------------------------------------------
100 |
101 | # honeypot.hidden = 'true'
102 | # honeypot.label = 'Fill This Field'
103 | # honeypot.name = 'honeypot'
104 | # honeypot.template = 'Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/writable/logs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/writable/session/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/writable/uploads/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------