Skip to content

Commit

Permalink
Cleanup, Added PHAR build tools
Browse files Browse the repository at this point in the history
  • Loading branch information
DaSpors committed Feb 14, 2023
1 parent 62ce8d3 commit c8cad2d
Show file tree
Hide file tree
Showing 6 changed files with 243 additions and 1 deletion.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,6 @@ Desktop.ini
*.egg
*.egg-info
dist
build
eggs
parts
bin
Expand Down
Binary file removed tools/WdfTracer_1.0.0.11.zip
Binary file not shown.
16 changes: 16 additions & 0 deletions tools/build/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Build process
=============

The Scavix Software Web Development Framework can be packed as PHAR.
Usage is simple, just replace the plain include with one referencing the PHAR:
```php
// old/normal style
require_once("/path/to/scavix-wdf/system.php");

// new/PHAR style
require('phar:///path/to/scavix-wdf.phar/system.php');
```

This is done from within Visual Studio Code by pressing STRG+Shift+B (aka run the build task).

Output will be placeed into the `tools` folder.
41 changes: 41 additions & 0 deletions tools/build/build.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?php
$dstPath = realpath(__DIR__."/../");
$srcRoot = realpath(__DIR__.'/../../web/system');

array_shift($argv);
$tag = array_shift($argv)?:'';
$master = trim(explode(":",@file_get_contents("$srcRoot/.git/HEAD"),2)[1]);
$branch = explode("/",$master);
$branch = $branch[count($branch)-1];
$master = "$srcRoot/.git/$master";
$version = trim(@file_get_contents($master));
$creation = @filemtime($master);

$pharname = "scavix-wdf";
if( $tag )
$pharname .= "-{$tag}";
$pharname .= '.phar';

echo "Building '$pharname'...\n";

$conf = strtolower(array_pop($argv));
@mkdir($conf);

class StripFilesFilter extends RecursiveFilterIterator
{
public function accept()
{
return stripos($this->current()->getPathname(),'.git') === false;
}
}

@unlink("$dstPath/$pharname");
$phar = new Phar("$dstPath/$pharname",0, "scavix-wdf.phar");

$objects = new RecursiveDirectoryIterator($srcRoot,FilesystemIterator::SKIP_DOTS);
$objects = new StripFilesFilter($objects);
$objects = new RecursiveIteratorIterator($objects);
$phar->buildFromIterator($objects,$srcRoot);
$phar->addFromString('VERSION',"$version\n$creation\n$branch");
//$phar->addFile(__DIR__.'/stub-cli.php', 'stub-cli.php');
$phar->setStub("#!/usr/bin/env php" .PHP_EOL.$phar->createDefaultStub('cli.php',''));
173 changes: 173 additions & 0 deletions tools/build/php.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions =
disable_classes =
zend.enable_gc = On
expose_php = On
max_execution_time = 30
max_input_time = 60
memory_limit = 1G
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
html_errors = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[CLI Server]
cli_server.color = On
[Date]
[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
phar.readonly = 0
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = On
[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = On
session.bug_compat_warn = On
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatibility_mode = Off
mssql.secure_connection = Off
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]
[opcache]
[curl]
13 changes: 13 additions & 0 deletions web/.vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Build PHAR",
"type": "shell",
"group": "build",
"command": "php -c ${workspaceFolder}/../tools/build/php.ini ${workspaceFolder}/../tools/build/build.php",
}
]
}

0 comments on commit c8cad2d

Please sign in to comment.