{"id":25456429,"url":"https://github.com/autoframe/components-ftp-transfer","last_synced_at":"2025-05-16T18:11:09.335Z","repository":{"id":190684597,"uuid":"683075485","full_name":"autoframe/components-ftp-transfer","owner":"autoframe","description":"transfer files from local to ftp with php. resumable, cli, progress","archived":false,"fork":false,"pushed_at":"2023-10-22T19:04:24.000Z","size":1461,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-18T01:40:22.771Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/autoframe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-25T14:37:06.000Z","updated_at":"2023-10-22T19:03:10.000Z","dependencies_parsed_at":"2023-08-25T23:42:47.483Z","dependency_job_id":"cdfa1d1d-391b-490a-a1b5-50668860e2b7","html_url":"https://github.com/autoframe/components-ftp-transfer","commit_stats":null,"previous_names":["autoframe/components-ftp-transfer"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autoframe%2Fcomponents-ftp-transfer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autoframe%2Fcomponents-ftp-transfer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autoframe%2Fcomponents-ftp-transfer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autoframe%2Fcomponents-ftp-transfer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autoframe","download_url":"https://codeload.github.com/autoframe/components-ftp-transfer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254582907,"owners_count":22095518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-18T01:38:33.835Z","updated_at":"2025-05-16T18:11:09.319Z","avatar_url":"https://github.com/autoframe.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Autoframe is a low level framework that is oriented on SOLID flexibility\n\n[![Build Status](https://github.com/autoframe/components-ftp-transfer/workflows/PHPUnit-tests/badge.svg)](https://github.com/autoframe/components-ftp-transfer/actions?query=branch:main)\n[![License: The 3-Clause BSD License](https://img.shields.io/github/license/autoframe/components-ftp-transfer)](https://opensource.org/license/bsd-3-clause/)\n![Packagist Version](https://img.shields.io/packagist/v/autoframe/components-ftp-transfer?label=packagist%20stable)\n[![Downloads](https://img.shields.io/packagist/dm/autoframe/components-ftp-transfer.svg)](https://packagist.org/packages/autoframe/components-ftp-transfer)\n\n*PHP File copy to FTP protocol via CLI uploader and reporter*\n\n\n```php\n\nnamespace Autoframe\\Components\\FtpTransfer;\n...\nclass AfrFtpBackupConfig\n{\n    protected string $sBusinessLogicClass = AfrFtpPutBigData::class; //Class must implement AfrFtpBusinessLogicInterface::class\n    public function setBusinessLogic(string $BusinessLogicClass): void {}\n    public function getBusinessLogic(): string {}\n    \n    protected ?string $sReportClass = null;  //Class must implement AfrFtpReportInterface::class\n    public function setReportClass(string $sReportClass): void {}\n    public function getReportClass(): string {}\n    \n    public string $sTodayFolderName = 'today';\n    public string $sLatestFolderName = '!latest';\n    public string $sResumeDump = __DIR__ . DIRECTORY_SEPARATOR . 'self.resume.php';\n\n    /**\n     * From local dir path is in key,\n     * Ftp destination dir path is into value\n     * = [ 'C:\\xampp\\htdocs\\afr\\src\\FtpBackup' =\u003e '/bpg-backup/MG1/test2/resume']\n     */\n    public array $aFromToPaths;\n    \n    public string $ConServer; //Server ip or hostname\n    public string $ConUsername;\n    public string $ConPassword;\n    public int $ConPort = 21;\n    public int $ConTimeout = 90;\n    public bool $ConPassive = true;\n    public int $iDirPermissions = 0775;\n \n    public string $sReportTarget = '';\n    public string $sReportTo = '';\n    public string $sReportToSecond = '';\n    public string $sReportSubject = 'Ftp upload report';\n    public string $sReportBody ;\n    public $mReportMixedA = null;\n    public $mReportMixedS = null;\n    public $mReportMixedI = null;\n    public int $iLogUploadProgressEveryXSeconds = 60;\n\n    public function __construct(string $sTodayFolderName = null)\n    {\n        if ($sTodayFolderName === null) {\n            $sTodayFolderName = date('Ymd');\n        }\n        $this-\u003esTodayFolderName = $sTodayFolderName;\n    }\n\n}\n```\n\n---\n\n```php\nnamespace Autoframe\\Components\\FtpTransfer\\Connection;\n...\ninterface AfrFtpConnectionInterface\n{\n    public function connect();\n    public function disconnect(): void;\n    public function reconnect(int $iTimeoutMs = 10);\n    public function getConnection();\n    public function getLoginResult(): bool;\n    public function getError(): string;\n    public function __destruct();\n    public function getDirPerms(): int; //from ftpConfig object\n}\n```\n\n---\n\n```php\nnamespace Autoframe\\Components\\FtpTransfer\\FtpBusinessLogic;\n...\ninterface AfrFtpBusinessLogicInterface\n{\n    public function makeBackup(): void;\n}\n```\n\n---\n\n```php\nnamespace Autoframe\\Components\\FtpTransfer\\Log;\n...\ninterface AfrFtpLogInterface\n{\n    public const FATAL_ERR = 1;\n    public const MESSAGE = 2;\n\n    public function newLog(): self;\n    public function logMessage(string $sMessage, int $iType): self;\n    public function closeLog(): self;\n}\n```\n\n---\n\n```php\nnamespace Autoframe\\Components\\FtpTransfer\\Report;\n...\ninterface AfrFtpReportInterface\n{\n    public function ftpReport(AfrFtpBackupConfig $oFtpConfig): array;\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautoframe%2Fcomponents-ftp-transfer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautoframe%2Fcomponents-ftp-transfer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautoframe%2Fcomponents-ftp-transfer/lists"}